如果索引像字典一样不存在而不检查是否存在,则数据框添加新行

Dataframe add new row if the index does not exist like a dictionary without checking existence

import pandas as pd
a = [['a', 1, 2, 3], ['b', 4, 5, 6], ['c', 7, 8, 9]]
df = pd.DataFrame(a, columns=['alpha', 'one', 'two', 'three'])
df.set_index(['alpha'], inplace = True)
       one  two  three
alpha                 
a        1    2      3
b        4    5      6
c        7    8      9

我想设置一些值,例如:

df.loc['a']['one'] = 1000

并且当索引不存在时,我们使用这个索引添加一个新行,而不像字典一样检查是否存在(如果键不存在dict[new key]会自动创建这个键)。例如:

df.loc['d']['three'] = 999

然后会有一个新行:

d: Nan, Nan, 999

以下代码对我不起作用:

df.loc['d']['three'] = 999

这正是 pandas 所做的,但是您需要正确使用 loc 索引器:

df.loc['a', 'one'] = 1000
df.loc['d', 'three'] = 999

输出:

          one  two  three
alpha                    
a      1000.0  2.0    3.0
b         4.0  5.0    6.0
c         7.0  8.0    9.0
d         NaN  NaN  999.0