首页 > 解决方案 > 如何通过分隔符拆分列,同时尊重要分隔的项目的相对位置

问题描述

下面是我在 Python 中使用 pandas 的通用数据框的脚本。我希望在数据框中拆分将创建新列的特定列,同时尊重原始列中项目的原始方向。

请看下面我的清晰度。先感谢您!

我的脚本:

import pandas as pd
import numpy as np

df = pd.DataFrame({'col1': ['x,y,z', 'a,b', 'c']})
print(df)

这就是我想要的

df = pd.DataFrame({'col1': ['x',np.nan,np.nan],
                    'col2': ['y','a',np.nan],
                    'col3': ['z','b','c']})
print(df)

这就是我得到的

df = pd.DataFrame({'col1': ['x','a','c'],
                    'col2': ['y','b',np.nan],
                    'col3': ['z',np.nan,np.nan]})
print(df)

标签: pythonpandassplitposition

解决方案


您可以使用答案中的justify功能:Series.str.split

dfn = pd.DataFrame(
    justify(df['col1'].str.split(',', expand=True).to_numpy(), 
            invalid_val=None, 
            axis=1, 
            side='right')
).add_prefix('col')

   col0  col1 col2
0     x     y    z
1  None     a    b
2  None  None    c

推荐阅读