小编bek*_*fen的帖子

合并(连接)具有缺失值和不同类型(str 和 int)的 pandas 列

我有一个数据框,其中有一列包含整数,我想将其与一列包含字符串值的组合。两列都是对象数据类型。问题是这些列也可能是 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

  • 在串联之前将列转换为 str 数据类型会产生“nan”字符串,例如“NaN Tablet(s)”。
  • 当要“连接”的列之一中有整数时,使用以下代码会导致类型错误。
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:预期的 str 实例,找到 int

所需的输出数据帧:

指数 剂量持续时间单位 剂量数量值 剂量单位 数量值 标准化剂量
0 南 …

python concatenation nan dataframe pandas

5
推荐指数
1
解决办法
2106
查看次数

标签 统计

concatenation ×1

dataframe ×1

nan ×1

pandas ×1

python ×1