这是一个关于如何构建Pandas.DataFrame更优雅/简洁的问题。 我想从元组列表中创建一个数据帧。 我可以像往常一样在收集所有这些内容后从列表中创建它,例如,
import pandas as pd
L = []
for d in mydata:
a,b,c = food(d)
L.append(a,b,c)
df = pd.DataFrame(data=L,columns=['A','B','C'])
但是,我希望立即将行添加到数据框中,而不是保留中间列表,因此在我的代码中使用数据帧作为唯一的数据结构。
这对我来说似乎更优雅;一种可能的方法是确实使用DataFrame的附加函数,如@PejoPhylo所建议的那样:
df = pd.DataFrame(columns=['A','B','C'])
for d in mydata:
a,b,c = food(d)
df.append([(a,b,c)])
但是,如果我这样做,它会创建额外的列,名为1,2,3等。 我还可以在每一行添加一个字典:
df = pd.DataFrame(columns=['A','B','C'])
for d in mydata:
a,b,c = food(d)
df.append([{'A':a,'B':b,'C':c)])
但是我仍然想要一些方法来添加数据而不必在每次迭代时指定列的名称。
有没有办法做到这一点,它与代码的最高版本一样有效,是不是很麻烦?