动态添加行到DataFrame

时间:2017-12-30 02:17:12

标签: python pandas dataframe

假设我有一个空数据框,已经设置了列,但没有行。我正在从网上抓取一些数据,所以我要说我需要在空数据帧中添加一个索引'2176'。我尝试分配时,如何自动将此行添加到数据库中?这是偶然的熊猫目的还是我应该使用其他东西?

2 个答案:

答案 0 :(得分:4)

作为.loc的替代方案,您可能需要考虑at。使用@ NickBraunagel的例子:

df = pd.DataFrame(columns=['foo1','foo2'])

然后

df.at['2716', 'foo1'] = 10

产量

     foo1 foo2
2716   10  NaN

时间差异很大:

# @NickBraunagel's solution
%timeit df.loc['2716', 'foo1'] = 10
1000 loops, best of 3: 212 µs per loop

# the at solution
%timeit df.at['2716', 'foo1'] = 10
100000 loops, best of 3: 12.5 µs per loop

如果要同时添加多个列条目,可以执行以下操作:

d = {'foo1': 20, 'foo2': 10}
df.at['1234', :] = d

产生

     foo1 foo2
2716   10  NaN
1234   20   10

但是,请务必始终添加相同的数据类型,以避免错误或其他不良影响,如here所述。

答案 1 :(得分:2)

import pandas as pd

df = pd.DataFrame(columns=['foo1','foo2'])

df.loc[2176,'foo1'] = 'my_value'
然后

df:

        foo1        foo2
2176    my_value    NaN