我有一个名为“myRawDF1”的熊猫数据框,并且:
print(myRawDF1)
结果是:
stop_price last_trail_price
0 79.74 {'amount': '100.47', 'currency_code': 'USD'}
1 None
2 73.06 {'amount': '114.52', 'currency_code': 'USD'}
etc...
我想用字典 {'amount': '0.0'} 替换 "None" 所以结果是:
stop_price last_trail_price
0 79.74 {'amount': '100.47', 'currency_code': 'USD'}
1 {'amount': '0.0'}
2 73.06 {'amount': '114.52', 'currency_code': 'USD'}
或者如果它更容易...我可以像这样使用 {'amount': '0.0', 'currency_code': 'USD'} :
stop_price last_trail_price
0 79.74 {'amount': '100.47', 'currency_code': 'USD'}
1 {'amount': '0.0', 'currency_code': 'USD'}
2 73.06 {'amount': '114.52', 'currency_code': 'USD'}
我不知道如何做到这一点。我以为我可以使用“fillna”,因为:
myRawDF1.fillna(0.0, inplace=True)
成功地用零替换了所有 None 值......所以我认为这会奏效:
myRawDF1.fillna({'amount': '0.0'}, inplace=True)
但它没有...我也试过:
myRawDF1['last_trail_price'].fillna({'amount': '0.0'}, inplace=True)
这将所有 None 值都更改为 NAN ......所以它正在做一些事情
我也试过这个......我在网上找到的......但它似乎也不起作用
myRawDF1['last_trail_price'] = myRawDF1['last_trail_price'].fillna(pd.Series([{'amount': '0.0'}], index = myRawDF1.index))
答案 0 :(得分:1)
我认为您需要使用 loc
访问权限:
s = df['last_trail_price'].isna()
df.loc[s, 'last_trail_price'] = [{'amount':0.0} for _ in range(s.sum())]