python - reshape /透视具有重复键值的键值对数据文件

标签 python pandas dataframe pivot

我发现了许多标题相似的问题,但找不到我要找的确切问题。

我有一个这样的数据文件:

title1:A1
title2:A2
title3:A3
title4:A4
title5:A5

title1:B1
title2:B2
title3:B3
title4:B4
title5:B5

title1:C1
title2:C2
title3:C3
title4:C4
title5:C5

title1:D1
title2:D2
title3:D3
title4:D4
title5:D5

我想使用 pandas 得到一个这样的表:

    title1  title2  title3  title4  title5
0   A1  A2  A3  A4  A5
1   B1  B2  B3  B4  B5
2   C1  C2  C3  C4  C5
3   D1  D2  D3  D4  D5

我的尝试:

import pandas as pd
import numpy as np

df = pd.read_csv('colon_sep.txt',header=None,sep=':')
df.columns = ['title','id']

# for loop method
df2 = pd.DataFrame()
for t in df.title.unique():
    df2[t] = df[df.title == t]['id'].values
df2
# HOW TO GET THIS BY Advanced methods?

我能够使用 for 循环获得所需的表。

是否有使用 groupby 或任何其他高级方法的更好方法?

最佳答案

您可以稍微简化您的代码,在末尾包含一个 pivot 调用以提高效率:

df = pd.read_csv('colon_sep.txt', sep=':', header=None)
df.insert(2, 2, df.groupby(0).cumcount())  
df = df.pivot(index=2, columns=0, values=1)

print(df)

0 title1 title2 title3 title4 title5
2                                   
0     A1     A2     A3     A4     A5
1     B1     B2     B3     B4     B5
2     C1     C2     C3     C4     C5
3     D1     D2     D3     D4     D5

关于python - reshape /透视具有重复键值的键值对数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52487801/

相关文章:

python - 将字典存储在数据框中,该数据框在唯一值列中具有重复条目

python - "normalize"将句子的数据帧转换为更大的单词数据帧

r - 如何为特定范围创建和插入带有分类变量的列

python - Xen客户端系统下的NumPy

python - 查找两个 pandas Dataframe 之间的差异并将所有内容添加到新的 DF

python - 计算不同类型的支出 - Pandas/Numpy - Python

python - 如何根据其他列的某些值替换列的 nan 值

R 用 tidyr 扩展多列

python - 没有库的列表中整数的乘积

python - 将每日数据转换为每周均值和中位数