【发布时间】:2018-06-10 08:26:33
【问题描述】:
假设我有一个空数据框,已经设置了列,但没有行。我正在从网络上抓取一些数据,所以假设我需要将索引 '2176' 添加到空数据框。当我尝试分配它时,如何自动将此行添加到数据库中?这甚至是熊猫的目的还是我应该使用其他东西?
【问题讨论】:
假设我有一个空数据框,已经设置了列,但没有行。我正在从网络上抓取一些数据,所以假设我需要将索引 '2176' 添加到空数据框。当我尝试分配它时,如何自动将此行添加到数据库中?这甚至是熊猫的目的还是我应该使用其他东西?
【问题讨论】:
作为.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 所述。
【讨论】:
import pandas as pd
df = pd.DataFrame(columns=['foo1','foo2'])
df.loc[2176,'foo1'] = 'my_value'
df 是:
foo1 foo2
2176 my_value NaN