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