python - 无法使用 df.at 更改 DataFrame 值
问题描述
** 无法使用 df.at 更改 DataFrame 值**
数据框:
import pandas as pd
df = pd.DataFrame({"A" : ['sani','akshay','jay'],
"B" : ['nan',1,'nan']})
代码:
d1 = {
"sani" : [100] ,
"himanshu" : [4],
"jay" : [45]
}
for i,row in df.iterrows() :
if row['B'] == 'nan':
key = row['A']
df.at[i,'B'] = d1[key]
输出:
A B
0 sani nan
1 akshay 1
2 jay nan
例外输出:
A B
0 sani [100]
1 akshay 1
2 jay [45]
附加上下文
如果字典键值是列表对象,则无法复制。
解决方案
我首先将字符串替换'nan'
为NaN
,然后使用map
with fillna()
,如下所示:
df['B'] = df['A'].map(d1).replace('nan',np.nan).fillna(df['B'])
印刷:
A B
0 sani [100]
1 akshay 1
2 jay [45]
推荐阅读
- c++ - 为什么“size_type”变量的地址在 C++ 中用作“stoi()”的参数?
- linux - 错误:esys:src/tss2-esys/api/Esys_CreatePrimary.c:135:Esys_CreatePrimary() Esys 完成错误代码 (0x000009a2)
- python - CNN:哪个频道提供的信息最多?
- css - 在tailwindcss中具有不透明度的背景图像
- audiokit - 在 AudioKit v5 中向 PWMOscillator 添加 LowPassFilter
- bash - 在 find 命令中从变量中排除一些文件
- teradata - 在我的代码中使用 REGEXP_LIKE 语句时出现错误
- python - 减去列之间的日期,条件是在 Python 中仅减去同一年内的日期
- python - Annormaly 很长时间做 .to_csv
- python - 根据熊猫数据框列的匹配索引,根据满足条件分配随机值