数据帧替换列值

2024-05-15 00:29:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据框,我需要替换列值。 因此,我尝试了以下方法,但没有达到预期效果:

dict_by_nationality = {
            250:0, #'Some-Nation locality', 
            260:0, #'Some-Nation locality'
            270:0, #'Some-Nation locality'
            280:0, #'Some-Nation locality'
            290:0, #'Some-Nation locality'
            440:0, #'Some-Nation locality'
            450:0, #'Some-Nation locality'
            460:0, #'Some-Nation locality'

             310:0, #'Other-Nation locality'

            510:2, #'Other place',
            520:2, #'Other place',
            530:2, #'Other place',
            }

# dat['my column'].apply(dict_by_nationality.get)
# dat['my column'].map(dict_by_nationality).fillna(dat['my column'])
dat['my column'].replace({310: 0}, inplace=True)
print(dat.head())

没有任何价值

更新

我意识到在同一数据帧上进行替换就是覆盖它,需要将它保存到另一个变量,然后进行替换


Tags: 数据方法bymyplacecolumnsomedict
1条回答
网友
1楼 · 发布于 2024-05-15 00:29:04

解决方案

尝试使用以下(df[col].str.strip().str.replace()),因为这样可以解决数据帧中存在未识别空白的情况

dat['my column'].str.strip().str.replace('310', '0')

我认为你的一句被注释掉的话应该很好用。使用我为此制作的虚拟数据尝试以下操作

建议的解决方案

df[col].map(dictionary).fillna(df[col])

范例

df = pd.DataFrame({'a': list('abcde'), 'b': list('abacd')})
df.a.map({'a': 'A', 'b': 'B'}).fillna(df.a)

输出

0    A
1    B
2    c
3    d
4    e

相关问题 更多 >

    热门问题