将条目顺序添加到空的pandas DataFrame中

时间:2018-01-17 20:14:16

标签: python pandas

我遇到了很奇怪的行为。如果我让

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中?

1 个答案:

答案 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