我有一个文件,其中有不同类型的值。 我需要将它们分成三列。 你能帮我解决这个问题吗?
我想拆分“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/