我有一个下面的数据框,我想旋转数据以将“名称”列的值更改为多个列,并将“数据”列的值更改为“名称”列创建的列的值。
当我处理数据时,“数据”列包含所有类型的日期,但我没有得到所需的结果,有人可以告诉我我做错了什么吗?
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行中,我需要数据值。
答案 0 :(得分:1)
我认为您需要将Name
转换为索引,对一列[]
进行两次DataFrame
选择并转置:
df1 = df.set_index('Name')[['Data']].T