我有一个包含字符串的列表,我打算使用循环创建一个数据框。以下示例可能有助于更好地理解:
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
最佳答案
为此,您可以将 dict
与 enumerate
结合使用:
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
。
关于python - 使用循环从列表创建数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49746711/