gpt4 book ai didi

Python/Pandas - 替换特定列中的值的最有效方法是什么

转载 作者:太空宇宙 更新时间:2023-11-03 21:23:01 25 4
gpt4 key购买 nike

假设你有一个数据框

df = pd.DataFrame({'a':[1,2,3,4],'b':[2,4,6,8],'c':[2,4,5,6]})

并且您想要替换列“a”和“c”(但不是“b”)中的特定值。例如,将 2 替换为 20,将 4 替换为 40。

以下内容将不起作用,因为它是在 DataFrame 切片的副本上设置值:

df[['a','c']].replace({2:20, 4:40}, inplace=True)

循环可以工作:

for col in ['a','c']:
df[col].replace({2:20, 4:40},inplace=True)

但是循环似乎效率低下。有更好的方法吗?

最佳答案

根据 replace 的文档,您可以为每一列指定一个字典:

import pandas as pd

df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [2, 4, 6, 8], 'c': [2, 4, 5, 6]})
lookup = {col : {2: 20, 4: 40} for col in ['a', 'c']}
df.replace(lookup, inplace=True)
print(df)

输出

    a  b   c
0 1 2 20
1 20 4 40
2 3 6 5
3 40 8 6

关于Python/Pandas - 替换特定列中的值的最有效方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54094441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com