python - 如何通过分隔符分割列,同时尊重要分隔的项目的相对位置

标签 python pandas split position

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

为了清楚起见,请参阅下文。预先感谢您!

我的脚本:

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)

最佳答案

您可以使用 this 中的 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

关于python - 如何通过分隔符分割列,同时尊重要分隔的项目的相对位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60915141/

相关文章:

python - 值错误: time data '10/11/2006 24:00' does not match format '%d/%m/%Y %H:%M'

python - 如何识别缺失索引

mysql - sqlalchemy.exc.ResourceClosedError : This result object does not return rows. 已经自动关闭

python - Pandas between_time bool 值

java - 如何使用两个分隔符拆分一个字符串,其中一个分隔符是双制表符?

python - Django 从模型中保存以前的对象

python - Pandas 使用函数突出显示具有条件的 excel 列

python - 等效于 Python pandas 中的 'mutate_at' dplyr 函数

Python - 如何从 ldap 查询中删除作为列表接收的字符?

html - 电源外壳 : split HTML