2017-09-13 76 views
0

假设我有一个字典,并创建一个数据帧大熊猫作为向pandas DataFrame增加字典值。据帧与字典键的列名

dict = {'a':1,'b':2,'c':3} 
df = pd.DataFrame(columns = ['a','b','c']) 

每次我创建一个我需要的值作为行添加到df相同的键一个新的字典。最初,df没有行并且没有分配索引。我知道的是使用

df.append(pd.Series(), ignore_index=True) 

但是,这不断增加列。此外,由于字典不会执行命令,难以编码的东西如list(dict.values())随机化插入前的命令,创建的列表作为一行到df,特别是当我不断更新dict

回答

1

如果你有相同的列中的数据帧,你应该考虑使用concat

pd.concat([df1, df2]) 

如果你想使用追加,假设你有你的dfvalues字典:

values = {'a':1,'b':2,'c':3} 
df = df.append(pd.Series(values), ignore_index=True) 
+2

'df.append(值,ignore_index = TRUE)'就足够了。 – Goyo

0

创建完初始DataFrame后:

df = pd.DataFrame(columns = ['a','b','c']) 
df 
Empty DataFrame 
Columns: [a, b, c] 
Index: [] 

然后,您可以添加与匹配列的字典。我会做这个通过传递一个字典数据帧的构造和使用pd.concat()虽然有可能是一个更有效的/更快的方式:

from_dict = pd.DataFrame({k: [v] for (k, v) in dic.items()}) 
df = pd.concat([df, from_dict]) #default axis = 0 
df 
    a b c 
0 1.0 2.0 3.0