python - 如何拆分pandas中同时具有空值和某些值的列?

标签 python pandas dataframe

我有一个文件,其中有不同类型的值。 我需要将它们分成三列。 你能帮我解决这个问题吗?

我想拆分“COMPONENT_IDS”列。分成三列 - DOC_ID、DOC_TITLE、PROD

示例:

COMPONENT_IDS
0
ENC-010864-13;INVOKANA PI and Med Guide - May 2014
0
INK-MET-100 vs 300;INVOKANA - 100 vs 300 mg as a Starting Dose;Invokana

输出:

DOC_ID               DOC_TITLE                                    PROD
NULL                 NULL                                         NULL
ENC-010864-13        INVOKANA PI and Med Guide - May 2014         NULL
NULL                 NULL                                         NULL
INK-MET-100 vs 300   INVOKANA - 100 vs 300 mg as a Starting Dose  Invokana

最佳答案

首先将 0 替换为缺失值,然后使用 Series.str.split使用 expand=True 获取新的 DataFrame 并分配回新列:

c = ['DOC_ID','DOC_TITLE','PROD']
df[c] = df.pop('COMPONENT_IDS').replace('0',np.nan).str.split(';', expand=True)
print (df)
               DOC_ID                                    DOC_TITLE      PROD
0                 NaN                                          NaN       NaN
1       ENC-010864-13         INVOKANA PI and Med Guide - May 2014      None
2                 NaN                                          NaN       NaN
3  INK-MET-100 vs 300  INVOKANA - 100 vs 300 mg as a Starting Dose  Invokana

详细信息:

print (df.pop('COMPONENT_IDS').replace('0',np.nan).str.split(';', expand=True))
                    0                                            1         2
0                 NaN                                          NaN       NaN
1       ENC-010864-13         INVOKANA PI and Med Guide - May 2014      None
2                 NaN                                          NaN       NaN
3  INK-MET-100 vs 300  INVOKANA - 100 vs 300 mg as a Starting Dose  Invokana

关于python - 如何拆分pandas中同时具有空值和某些值的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59578685/

相关文章:

r - 操作 R 中的 cutree 对象以分割原始数据帧

python - 在 Pandas 数据框上一起应用过滤器并替换同一列

Python - 将二维数组中的列设置为特定值的最佳方法

python - 如果将每个 View 类移动到单独的 .py 文件,是否会影响性能?

python - (gclalcli) 错误 : could not create 'build/bdist.linux-x86_64/egg' : Permission denied

python - Pandas:将列中的列表转置为行

python - 使用 pandas 将贸易数据重采样为 OHLCV

python - 填充空行

python - 使用 sage math 在 python 中输入文本

python-3.x - 在将Pandas数据帧插入BigQuery表中的同时处理NaN值