gpt4 book ai didi

Python Pandas 在 For 循环中替换列中的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:04 25 4
gpt4 key购买 nike

我正在尝试连接文件列表中的所有文件 文件列表:

result = pd.concat([pd.read_csv(f).set_index(['a', 'b', 'c']) for f in file_list])

挑战在于,我想在 set_index 之前用 column[b] 中的任何内容替换字符串 'xyz'。我怎样才能在同一行中实现这一目标?

最佳答案

我相信你需要用嵌套的 dict 替换 :

dfs=[pd.read_csv(f).replace({'b':{'xyz':''}}).set_index(['a', 'b', 'c']) for f in file_list]
result = pd.concat(dfs)

或者如果 xyz 字符串不在 ac 列中,则可以创建 MultiIndex 然后替换所有xyz:

dfs = [pd.read_csv(f, index_col=['a','b','c']).rename({'xyz':''}) for f in file_list]
result = pd.concat(dfs)

如果没有NaN,最后只使用{'xyz':np.nan} 代替{'xyz':''}

通过评论编辑:

正则表达式替换:

dfs= [pd.read_csv(f).replace({'b':{'xyz*':''}}, regex=True).set_index(['a', 'b', 'c']) for f in file_list]
result = pd.concat(dfs)

关于Python Pandas 在 For 循环中替换列中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47496511/

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