如何将行转换为列标题和其他列的值作为数据?

时间:2020-06-05 07:45:51

标签: python pandas

我有一个下面的数据框,我想旋转数据以将“名称”列的值更改为多个列,并将“数据”列的值更改为“名称”列创建的列的值。

当我处理数据时,“数据”列包含所有类型的日期,但我没有得到所需的结果,有人可以告诉我我做错了什么吗?

import numpy as np
dict_d = {'Name': {0: 'Number', 1: 'Purpose', 2: 'Approver', 3: 'internal/external', 4: 'Name', 5: 'N Mnemonic'}, 'Data': {0: '123456', 1: 'BC', 2: np.nan, 3: 'internal', 4: np.nan, 5: 'xyz'}}
df = pd.DataFrame(dict_d)
df

o / p

Name    Data
0   Number  123456
1   Purpose BC
2   Approver    NaN
3   internal/external   internal
4   Name    NaN
5   N Mnemonic  xyz

我已经尝试过了

df.pivot_table(columns='Name', values='Data', aggfunc=lambda x: ''.join(str(x)))
Name    Approver    N Mnemonic  Name    Number  Purpose internal/external
Data    NameData    NameData    NameData    NameData    NameData    NameData

但是在第1行中,我需要数据值。

1 个答案:

答案 0 :(得分:1)

我认为您需要将Name转换为索引,对一列[]进行两次DataFrame选择并转置:

df1 = df.set_index('Name')[['Data']].T