Pandas 拆分数据帧

Pandas Split DataFrame

我有一个当前有 4 列的 df。第一列是由 _ 分隔的 3 个项目的组合。比如:44_title_iphone6_32GB我要的是44titleiphone6_32gb自己新建的栏目。但是,我不能在 _ 上执行简单的 df.split,因为那样它会将 iphone6 和 32gb 分成两部分。我怎样才能做到这一点?另一个问题是 3 项中的最后一项的长度并不总是一致,例如。 44_title_iphone5_32gb_white 所以无论如何我仍然想要每个新列中的编号、标题和描述。

帮忙?

split 接受一个 n 分割数参数:

>>> df = pd.DataFrame({"stuff": ["44_title_iphone6_32GB", "44_title_iphone5_32gb_white"]})
>>> df
                         stuff
0        44_title_iphone6_32GB
1  44_title_iphone5_32gb_white
>>> df["stuff"].str.split("_", 2)
0          [44, title, iphone6_32GB]
1    [44, title, iphone5_32gb_white]
Name: stuff, dtype: object

然后如果我们 .apply(pd.Series),我们可以将这些提升到列:

>>> df["stuff"].str.split("_", 2).apply(pd.Series)
    0      1                   2
0  44  title        iphone6_32GB
1  44  title  iphone5_32gb_white

更新:

请注意,现在您可以使用 expand=True 而不是 apply(pd.Series):

>>> df["stuff"].str.split("_", 2, expand=True)
    0      1                   2
0  44  title        iphone6_32GB
1  44  title  iphone5_32gb_white