我有一个数据框,其中有一列包含整数,我想将其与一列包含字符串值的组合。两列都是对象数据类型。问题是这些列也可能是 NaN。
我找到的解决方案会导致不同的错误或不良结果。
我的数据框如下所示:
| 指数 | 剂量持续时间单位 | 剂量数量值 | 剂量单位 | 数量值 |
|---|---|---|---|---|
| 0 | 天 | 南 | 南 | 南 |
| 1 | 天 | 南 | 片剂 | 南 |
| 2 | 天 | 2 | 南 | 南 |
| 3 | 天 | 1 | 片剂 | 南 |
| 4 | 天 | 2 | 片剂 | 南 |
创建数据框的代码:
df = pd.DataFrame([["day",None,None,None],["day",None,"tablet(s)",None],["day",2,"tablet(s)",None],["day",1,"tablet(s)",None],["day",2,"tablet(s)",None]], columns=["dosagedurationunit","dosagequantityvalue","dosagequantityunit","quantityvalue"])
Run Code Online (Sandbox Code Playgroud)
以下答案适用于相同类型(str)的列: Combine pandas string columns with Missing Values
df['DOSE'] = df[['dosagequantityvalue', 'dosagequantityunit']].apply(
lambda x: None if x.isnull().all() else ' '.join(x.dropna()), axis=1)
Run Code Online (Sandbox Code Playgroud)
所需的输出数据帧:
| 指数 | 剂量持续时间单位 | 剂量数量值 | 剂量单位 | 数量值 | 标准化剂量 |
|---|---|---|---|---|---|
| 0 | 天 | 南 … |