python 用额外的列连接替换数据框列值
python replace dataframe column values with additional column concatenation
我有一个从多列生成的 df 输出(下面的示例):
col_a col_b col_c
0 101 104 AAB
1 337 103 CAD
2 524 204 DER
3 129 404 EEH
4 842 108 HHR
5 337 108 HHE
我是否可以在 python 中替换 col_a 值,这样如果任何值是 101 或 337 或 524,col_a 值将连接到其对应的任何值 col_b 和 col_c 值是?
所以:
101 would be replaced with 101-104-AAB,
337 would become 337-103-CAD (line 1) and 337-108-HHE (line 5), and
524 would become 524-204-DER?
提前感谢您的想法!
试试这个:
df.loc[:, ['col_a','col_b']] = df.loc[:, ['col_a','col_b']].astype(str)
df['col_a'] + '-' + df['col_b'] + '-' + df['col_c']
使用 Jamjitul 和 np.where()
的串联代码成功执行以下操作
import pandas as pd
import numpy as np
file='insert path'
df = pd.read_csv(file)
df.loc[:, ['col_a','col_b']] = df.loc[:, ['col_a','col_b']].astype(str)
dfseg=df['col_a']+'-'+df['col_b']+'-'+df['col_c']
df['col_d'] = np.where((df['col_a']=='101')|(df['col_a']=='337')|(df['col_a']=='524'),dfseg,df['col_a'])
df
正在生成此列表:
col_a
col_b
col_c
col_d
0
101
104
AAB
101-104-AAB
1
337
103
CAD
337-103-CAD
2
524
204
DER
524-204-DER
3
129
404
EEH
129
4
842
108
HHR
842
5
337
108
HHE
337-108-HHE
用于捕获 OR 条件的其他选项(目前由上面的 |
分隔)总结 here。
我有一个从多列生成的 df 输出(下面的示例):
col_a col_b col_c
0 101 104 AAB
1 337 103 CAD
2 524 204 DER
3 129 404 EEH
4 842 108 HHR
5 337 108 HHE
我是否可以在 python 中替换 col_a 值,这样如果任何值是 101 或 337 或 524,col_a 值将连接到其对应的任何值 col_b 和 col_c 值是?
所以:
101 would be replaced with 101-104-AAB,
337 would become 337-103-CAD (line 1) and 337-108-HHE (line 5), and
524 would become 524-204-DER?
提前感谢您的想法!
试试这个:
df.loc[:, ['col_a','col_b']] = df.loc[:, ['col_a','col_b']].astype(str)
df['col_a'] + '-' + df['col_b'] + '-' + df['col_c']
使用 Jamjitul 和 np.where()
import pandas as pd
import numpy as np
file='insert path'
df = pd.read_csv(file)
df.loc[:, ['col_a','col_b']] = df.loc[:, ['col_a','col_b']].astype(str)
dfseg=df['col_a']+'-'+df['col_b']+'-'+df['col_c']
df['col_d'] = np.where((df['col_a']=='101')|(df['col_a']=='337')|(df['col_a']=='524'),dfseg,df['col_a'])
df
正在生成此列表:
col_a | col_b | col_c | col_d | |
---|---|---|---|---|
0 | 101 | 104 | AAB | 101-104-AAB |
1 | 337 | 103 | CAD | 337-103-CAD |
2 | 524 | 204 | DER | 524-204-DER |
3 | 129 | 404 | EEH | 129 |
4 | 842 | 108 | HHR | 842 |
5 | 337 | 108 | HHE | 337-108-HHE |
用于捕获 OR 条件的其他选项(目前由上面的 |
分隔)总结 here。