Python 3.x 仅当值存在于其他列中时,才将Dataframe复制到列
我有一个这样的数据帧Python 3.x 仅当值存在于其他列中时,才将Dataframe复制到列,python-3.x,pandas,Python 3.x,Pandas,我有一个这样的数据帧 SMS Email 1 - or " " or nan 2 3 - or " " or nan 100 - or " " or nan - or " " or nan 此处-或“”或nan表示该位置可以是破折号、nan或空白值。 现在我想要一个输出数据帧,如 SMS Email
SMS Email
1 - or " " or nan
2 3
- or " " or nan 100
- or " " or nan - or " " or nan
此处-或“”或nan表示该位置可以是破折号、nan或空白值。
现在我想要一个输出数据帧,如
SMS Email Status
1 - or " " or nan 1
2 3 2
- or " " or nan 100 100
- or " " or nan - or " " or nan - or " " or nan
输出DF的逻辑类似于如果SMS或电子邮件都有值,则状态列应具有SMS的值,状态列不应具有nan、空白或破折号值,除非SMS和电子邮件都是nan或空白或- IIUC
df['Status']=df[['SMS','Email']].apply(pd.to_numeric,errors='coerce', axis=1).bfill(1).iloc[:,0]
IIUC
您可以使用:
df['Status']=df[['SMS','Email']].replace('[^0-9]+',np.nan,regex=True).bfill(1).iloc[:,0]
print(df['Status'])
您可以使用:
df['Status']=df[['SMS','Email']].replace('[^0-9]+',np.nan,regex=True).bfill(1).iloc[:,0]
print(df['Status'])
谢谢,您能告诉我您的代码段中的哪个部分将SMS定义为默认值吗?谢谢,您能告诉我您的代码段中的哪个部分将SMS定义为默认值吗?