我遇到了很奇怪的行为。如果我让
dict = {'newcol':[1,5], 'othercol':[12,-10]}
df = pandas.DataFrame(data=dict)
print df['newcol']
我找回了一个带有1和5的pandas Series对象。大。
print df
我按照我的预期恢复了DataFrame。凉。
但是,如果我想一次添加一个DataFrame怎么办? (我的用例是保存机器学习器训练运行的指标并行发生,每个进程得到一个数字,然后只添加到DataFrame的那一行。)
我可以做以下事情:
df = pandas.DataFrame()
df['newcol'] = pandas.Series()
df['othercol'] = pandas.Series()
df['newcol'].loc[0] = 1
df['newcol'].loc[1] = 5
df['othercol'].loc[0] = 12
df['othercol'].loc[1] = -10
print df['newcol']
我找回了我期望的大熊猫系列,与第一种方法创建DataFrame相同。
print df
我看到打印的df是一个空数据框,其中包含[newcol,othercol]列。
显然,在第二种方法中,DataFrame的内容等同于第一种方法。那么为什么它不够聪明才能知道它被填满了?有没有我可以调用的函数来更新DataFrame对其自己的系列的知识,以便所有这些(可能是无序的)系列可以统一到一致的DataFrame中?
答案 0 :(得分:2)
您可以使用以下
将数据分配给空数据帧df = pd.DataFrame()
df['newcol'] = pd.Series()
df['othercol'] = pd.Series()
df.loc[0, 'newcol'] = 1
df.loc[1, 'newcol'] = 5
df.loc[0, 'othercol'] = 12
df.loc[1, 'othercol'] = -10
newcol othercol
0 1.0 12.0
1 5.0 -10.0