熊猫数据框操纵以摆脱困境

时间:2019-05-08 20:18:33

标签: python pandas dataframe

我有一个熊猫数据框:

>>> b'\x00$\t\x18'
b"\000$\t\030"

我想将其转换为以下形式:

df1=pd.DataFrame({
    'ID':[101,102,103],
    'Name':['Axel','Bob','Charles'],
    'Vol Q1':[100,102,104],
    'Vol Q2':[101,103,105],
    'Trans Q1':[1,3,5],
    'Trans Q2':[2,4,6],
 })

但是我不知道怎么做。

我尝试过:

df4=pd.DataFrame({
    'ID':[101,101,102,102,103,103],
    'Name':['Axel','Axel','Bob','Bob','Charles','Charles'],
    'Quarter':['Q1','Q2','Q1','Q2','Q1','Q2'],
    'Vol':[100,101,102,103,104,105],
    'Trans':[1,2,3,4,5,6]
 })

但这不能提供所需的格式。它将所有这些都放在一栏中。我不知道该怎么做。

1 个答案:

答案 0 :(得分:3)

使用pd.wide_to_long

pd.wide_to_long(df1, stubnames=['Trans', 'Vol'], sep=' ', suffix='Q\d+', i=['ID', 'Name'], j='Quarter').reset_index()

Out[31]:
    ID     Name Quarter  Trans  Vol
0  101     Axel   Q1      1  100
1  101     Axel   Q2      2  101
2  102      Bob   Q1      3  102
3  102      Bob   Q2      4  103
4  103  Charles   Q1      5  104
5  103  Charles   Q2      6  105