python - 在 pandas 数据框中分隔行值

标签 python pandas dataframe jupyter-notebook

我有这种 pandas 数据框输出,列位于顶行:

Gender,Name
Male, Matt 57
Male, Jack 42
Male, David 31
Male, John 28
Male, Tim 51

我的目标是获得这种输出:

Gender,Name, Age
Male, Matt, 57
Male, Jack, 42
Male, David, 31
Male, John, 28
Male, Tim, 51

如何将“姓名”列中的年龄值更改为名称为“年龄”的新列?

最佳答案

df.drop('Name', 1).join(
    df.Name.str.split().apply(pd.Series, index=['Name', 'Age']))

  Gender   Name Age
0   Male   Matt  57
1   Male   Jack  42
2   Male  David  31
3   Male   John  28
4   Male    Tim  51

这也会给你带来同样的结果

df.drop('Name', 1).join(
    df.Name.str.extract('(?P<Name>\S+)\s+(?P<Age>\S+)', expand=True))

或者朝着奇怪的方向迈出了一步

df.assign(
    **dict(zip(
        ('Name', 'Age'),
        zip(*np.core.defchararray.split(df.Name.values.astype(str), ' ').tolist()))))

简单时间测试

enter image description here

关于python - 在 pandas 数据框中分隔行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42869364/

相关文章:

r - 合并列以删除 NA 但优先考虑特定替换

python - 矩阵乘以逆不产生身份

Python 正则表达式 - 在搜索过程中忽略序列

python - 使用 pandas 从 txt 加载数据

python - 比较 Pandas 中的当前行和上一行

r - 从 r 中的数据框中删除每第 n 列

python - 如何使用 pyopencv_to 函数?

python - Bokeh 中带有对数轴的四边形

python - 如何搜索矩阵中的连通元素?

python - 在行、多个键上滚动减法