MHa*_*anu 5 python dataframe python-3.x pandas
我有一个混合数据类型的数据框,我想更改 str 单元格的值(每个单元格由两个字母加三个数字组成),以便奇数变为偶数,但数字会减少。AB123 应该变成 AB122 而不会改变它之前的字母。
这是一个混合类型的示例数据框:
df = pd.DataFrame({'Opportunity':['AB122','AB123','AB125', 'AB124'],
'Quantity': [2, 3, 4, 1],
'Member': ["AACC", "AACC", "AACC", 'DDEE']})
print (df)
Opportunity Quantity Member
0 AB122 2 AACC
1 AB123 3 AACC
2 AB121 4 AACC
3 AB120 1 DDEE
Run Code Online (Sandbox Code Playgroud)
我希望结果是:
print (df2)
Opportunity Quantity Member
0 AB122 2 AACC
1 AB122 3 AACC
2 AB120 4 AACC
3 AB120 1 DDEE
Run Code Online (Sandbox Code Playgroud)
尝试:
df['Opportunity'] = df['Opportunity'].str[:2] + np.where(df['Opportunity'].str[2:].astype(int) % 2, df['Opportunity'].str[2:].astype(int).sub(1).astype(str), df['Opportunity'].str[2:])
Run Code Online (Sandbox Code Playgroud)
现在:
print(df)
Run Code Online (Sandbox Code Playgroud)
是:
Member Opportunity Quantity
0 AACC AB122 2
1 AACC AB122 3
2 AACC AB120 4
3 DDEE AB120 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |