【问题标题】:PYTHON: Find and Replace SUBSTR from column names - lookup from CSVPYTHON:从列名中查找和替换 SUBSTR - 从 CSV 中查找
【发布时间】:2021-09-24 19:44:57
【问题描述】:

我在 csv 中有 1000 条记录,格式如下:

mycsv:

FIND REPLACE
ABC THOMAS
LMN DICKENSON
DEF PAM
XYZ HARRY

具有 1000 行和列的 pd.DataFrame,格式如下:

df = pd.DataFrame(data = {'名字叫ABC': [0,0,0,0,1,1,1,1],
'LMN 得分最高': [0,0,1,1,0,0,1,1],
'最快乐的是 XYZ': [0,1,0,1,0,1,0,1],
'DEF 聋了吗?': [1,0,1,0,1,0,1,0]})

The name is ABC LMN has the Highest score Happiest is XYZ is DEF deaf?
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0

我想要以下输出:(mycsv中匹配FIND的字符串应该替换为mycsv中对应的REPLACE)

The name is THOMAS DICKENSON has the Highest score Happiest is HARRY is PAM deaf?
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0

【问题讨论】:

  • df.columns = df.columns.str.replace('ABC', 'THOMAS') 并且您可以在for-loop 中针对 CSV 文件中的不同值运行它。

标签: python pandas string dataframe replace


【解决方案1】:

假设您的 csv 与您的代码位于同一目录中,您可以从创建查找和替换值的字典开始。

import pandas as pd

df = pd.read_csv('lookup_file.csv')
lookup_dict = df.set_index(['FIND'])['REPLACE'].to_dict()

然后遍历该字典的条目并使用 replace()

# create sample dataframe
df = pd.DataFrame(data = {'The name is ABC': [0,0,0,0,1,1,1,1],
                          'LMN has the Highest score': [0,0,1,1,0,0,1,1],
                          'Happiest is XYZ': [0,1,0,1,0,1,0,1],
                          'is DEF deaf?': [1,0,1,0,1,0,1,0]})

# apply column name mapping
for key, value in lookup_dict.items():
    df.columns = df.columns.str.replace(key, value, regex=False)

print(df)

【讨论】:

    猜你喜欢
    • 2020-05-07
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2022-07-23
    • 2020-06-16
    • 1970-01-01
    • 2018-01-18
    相关资源
    最近更新 更多