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

标签 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

最佳答案

为此,您可以将 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

关于python - 使用循环从列表创建数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49746711/

相关文章:

python - 字典唯一组合Python列表

python - 如何在QGIS右上角设置DockWidget?

python - 如何在文件中的行和列位置插入文本?

class - 在 Python 中制定动态类

python - 如何使用字符串定义函数名

pandas - 如何删除非法字符以便数据框可以写入 Excel

python - 错误消息 : replace with Series. 滚动(窗口=5).corr(其他=<系列>)

python - 如果重复超过 n 次,则删除 Pandas 数据框中的连续重复项

python - 对字典中的值执行标准偏差

python - 如何让 Pyplot 识别曲线图中的高原(几乎为 0 斜率),然后打印高原的 ydata 值?