相关疑难解决方法(0)

在pandas/python中的数据框中组合两列文本

我在使用pandas的python中有一个20 x 4000的数据帧.其中两列名为Year和quarter.我想创建一个名为period的变量,将Year = 2000和quarter = q2变为2000q2

任何人都可以帮忙吗?

python numpy dataframe pandas

395
推荐指数
17
解决办法
60万
查看次数

合并(连接)具有缺失值和不同类型(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
查看次数

标签 统计

dataframe ×2

pandas ×2

python ×2

concatenation ×1

nan ×1

numpy ×1