gpt4 book ai didi

python - 使用 str.split 函数拆分数据框中的列

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:20 25 4
gpt4 key购买 nike

我正在尝试将具有逗号分隔值的列拆分为 2 列,但 str.split 函数返回具有 0 和 1 的列而不是拆分字符串值

我有一个包含“全名”列的数据框,该列的全名用逗号分隔姓氏和名字。

我使用了 str.split 函数,它在我执行它时仅用于显示。但是:当我尝试使用相同的函数将 2 个新列添加到具有拆分数据的同一数据帧时,我得到了 2 个新列,第一列填充 0,第二列填充 1。

用于显示拆分数据的代码:

df2015_2019.iloc[:,0].str.split(',', expand=True)

无法使用拆分数据创建新列的代码:

df2015_2019['Lname'],df2015_2019['Fname'] = df2015_2019.iloc[:,0].str.split(',', expand=True)

我得到一个全为 0 的“Lname”列和一个全为 1 的“Fname”列

最佳答案

实现这一点的另一种方法如下..

示例数据集:

>>> df = pd.DataFrame({'Name': ['Karn,Kumar', 'John,Jimlory']})
>>> df
Name
0 Karn,Kumar
1 John,Jimlory

结果:

您可以在拆分值时指定列名称,如下所示。

>>> df[['First Name','Last Name']] = df['Name'].str.split(",", expand=True)
>>> df
Name First Name Last Name
0 Karn,Kumar Karn Kumar
1 John,Jimlory John Jimlory

或者,正如另一个答案所述......

>>> df['Name'].str.split(",", expand=True).rename({0: 'First_Name', 1: 'Second_Name'}, axis=1)
First_Name Second_Name
0 Karn Kumar
1 John Jimlory

>>> df['Name'].str.rsplit(",", expand=True).rename(columns={0:'Fist_Name', 1:'Last_Name'})
Fist_Name Last_Name
0 Karn Kumar
1 John Jimlory

注意:您可以使用 axis = columnsaxis =1 两者是相同的。

只是另一种使用 Series.str.partition 的方式 几乎没有争吵,但是,我们必须使用 drop 作为 partition 保留逗号“,”以及一列。

>>> df['Name'].str.partition(",", True).rename(columns={0:'Fist_Name', 2:'Last_Name'}).drop(columns =[1])
Fist_Name Last_Name
0 Karn Kumar
1 John Jimlory

只要让它变 slim ,我们就可以为rename定义dict值。

1 - 使用 str.partition ..

dict = {0: 'First_Name', 2: 'Second_Name'}

df = df['Name'].str.partition(",", True).rename(dict2,axis=1).drop(columns =[1])
print(df)

First_Name Second_Name
0 Karn Kumar
1 John Jimlory

2 - 使用 str.split() ..

dict = {0: 'First_Name', 1: 'Second_Name'}

df = df['Name'].str.split(",", expand=True).rename(dict, axis=1)
print(df)
First_Name Second_Name
0 Karn Kumar
1 John Jimlory

关于python - 使用 str.split 函数拆分数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57463127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com