我有一个这样的数据框:
Source | Description |
Incomes | Tax 12 |
Incomes | Payment |
Incomes | Check 152 |
Incomes | Incoming 21 |
Incomes | Receiving |
Payments | Tax |
Payments | Incoming 7 |
Payments | Receiving 12 |
Payments | Check |
Payments | Incoming |
首先,我使用Incoming
将包含Check
或Incomes
的所有内容替换为Check
和df.loc
:
Source | Description |
Incomes | Incomes |
Incomes | Payment |
Incomes | Checks |
Incomes | Incomes |
Incomes | Receiving |
Payments | Receiving 2 |
Payments | Incomes |
Payments | Receiving 12 |
Payments | Checks |
Payments | Incomes |
现在,我想用相应的Incomes
值替换Checks
列中与Desciption
或Source
不匹配的所有内容,例如:
Source | Description |
Incomes | Incomes |
Incomes | Incomes |
Incomes | Checks |
Incomes | Incomes |
Incomes | Incomes |
Payments | Payments |
Payments | Incomes |
Payments | Payments |
Payments | Checks |
Payments | Incomes |
我该怎么做?
我已经尝试过df.loc[df['Description'].str.contains('Incomes|Checks')== False] == df['Source']
,但没有成功。
预先感谢
答案 0 :(得分:0)
使用此
mask = df['Description'].str.contains("Incoming|Check")
df.loc[~mask, "Description"] = df.loc[~mask, "Source"]
df['Description'] = df['Description'].str.replace("Incoming.*", "Incomes") \
.str.replace("Check.*", "Checks")