Pandas 拆分数据帧
Pandas Split DataFrame
我有一个当前有 4 列的 df。第一列是由 _ 分隔的 3 个项目的组合。比如:44_title_iphone6_32GB
我要的是44
title
iphone6_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
我有一个当前有 4 列的 df。第一列是由 _ 分隔的 3 个项目的组合。比如:44_title_iphone6_32GB
我要的是44
title
iphone6_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