python - 我如何以这样的方式分割 pandas 数据框,为每个分割值创建一个列

标签 python pandas split dataframe

例如。

输入数据框

Name     Subjects
Ramesh   Maths,Science
Rakesh   MAths,Science,Social Studies
John     Social Science, Lietrature

输出数据框

Name     Subject1       Subject2     Subjects3
Ramesh   Maths          Science      NaN
Rakesh   MAths          Science      Social Studies
John     Social Science Literature   Nan

最佳答案

您可以根据 str.split 的结果创建一个新的 df然后concat他们:

In [66]:
subjects = df['Subjects'].str.split(',', expand=True)
subjects

Out[66]:
                0           1               2
0           Maths     Science            None
1           MAths     Science  Social Studies
2  Social Science  Lietrature            None

In [71]:    
subjects.columns = ['Subject ' + str(x + 1) for x in range(len(subjects.columns))]
subjects

Out[71]:
        Subject 1   Subject 2       Subject 3
0           Maths     Science            None
1           MAths     Science  Social Studies
2  Social Science  Lietrature            None

In [74]:
concatenated = pd.concat([df,subjects], axis=1)
concatenated.drop('Subjects',axis=1,inplace=True)
concatenated

Out[74]:
     Name       Subject 1   Subject 2       Subject 3
0  Ramesh           Maths     Science            None
1  Rakesh           MAths     Science  Social Studies
2    John  Social Science  Lietrature            None

关于python - 我如何以这样的方式分割 pandas 数据框,为每个分割值创建一个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35410870/

相关文章:

python - 如何使用pymongo在mongodb数据库中插入散列密码

python - 如何从字符串中加入()单词?

python - 有什么方法可以用 PyPy 安装 Pandas 吗?

c - 将文本添加到行尾

python - 使用 numpy 索引数组索引 numpy 数组

python - 我有一个单词列表。我想添加一个与每个单词关联的计数器变量。我该怎么做呢?

python - 检查整数的连续性并返回唯一值

python - 我怎样才能用pandas以更Pythonic的方式解决这个问题?

python - 如何 split() 字符串并将其传递给对象的 __init__() 方法?

r - 尝试从 R 中的基因序列返回指定数量的字符