使用循环从列表创建数据框

时间:2018-04-10 06:21:48

标签: python python-3.x pandas dataframe

我有一个包含字符串的列表,我打算使用循环创建数据帧。可能是下面的例子将有助于更好地理解:

s=["first","second","third"]
a=s[0]
for i in range(1,len(s)):
    print(i)
    print(s[i])
    a=a+s[i]
#########
print(a)
'first;second;third'
## Creating dataframe####
d=pd.DataFrame()
d["c"]=1
d["text"]=a

这给了我一个空的数据框。

输出预期为:

c       text

1       first;second;third

2 个答案:

答案 0 :(得分:1)

您可以将dictenumerate一起使用:

s = ["first", "second", "third"]

df = pd.DataFrame.from_dict(dict(enumerate(s, 1)), orient='index')\
                 .reset_index()\
                 .rename(columns={'index': 'c', 0: 'text'})

#    c    text
# 0  1   first
# 1  2  second
# 2  3   third

避免“在循环中构建数据框”。您最好的选择几乎总是来构建列表或字典,然后输入pd.DataFrame

以上示例适用于任何长度s

答案 1 :(得分:0)

你在找?

import pandas as pd
s=["first","second","third"]
a = "; ".join(s)

d=pd.DataFrame([{"text": a, "c": 1}])
print(d)

<强>输出:

   c                  text
0  1  first; second; third