[英]Pandas conditionally set column value
我有以下excel
A B
'Text1' NaN
'Text2' 'Text7'
'Text3' 'Text8'
'Text4' NaN
'Text5' NaN
我想有条件地设置第三列
仅当 B 不为空时,才将 C 列设置为 A + '_' + B。 如果 B 为空,则将 C 设置为 A
A B C
'Text1' NaN 'Text1'
'Text2' 'Text7' 'Text2_Text7'
'Text3' 'Text8' 'Text3_Text8'
'Text4' NaN 'Text4'
'Text5' NaN 'Text5'
可以使用熊猫吗?
到目前为止,我有以下代码
import pandas as pd
df = pd.read_excel('example.xlsx')
更新:
我已将值更新为字符串。 我认为给出的解决方案适用于 int 数据类型,但不适用于字符串。
你在寻找这样的东西吗?
df.fillna(value=0, inplace=True)
df['C'] = df.A + df.B
import numpy as np
df.replace(0, np.nan, inplace=True)
A B C
0 1 NaN 1.0
1 2 4.0 6.0
2 3 5.0 8.0
3 4 NaN 4.0
4 5 NaN 5.0
df = pd.DataFrame({'A': [1,2,3,4,5], 'B': [np.nan, 4,5, np.nan,np.nan]})
df['C'] = df['A'].add(df['B']).fillna(df['A'])
A B C
0 1 NaN 1.0
1 2 4.0 6.0
2 3 5.0 8.0
3 4 NaN 4.0
4 5 NaN 5.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.