如果我创建一个数据框并从中生成数据透视表,则它会在结果表的左上方“单元格”中始终显示一个字符串,如下所示。在此示例中,出现字符串“ n”:
import pandas as pd
df = pd.DataFrame({'col1':['a','a','b','b','c','c'],
'col2':['str_a1','str_a2','str_b1','str_b2','str_c1','str_c2']})
df2 = df.assign(n=df.groupby('col1').cumcount()).pivot(index='col1',columns='n',values='col2').reset_index()
df2
n col1 0 1
0 a str_a1 str_a2
1 b str_b1 str_b2
2 c str_c1 str_c2
如果我直接像下面那样创建数据框,它什么也不会出现。如何在第二个选项中包含“ n”,如何从上面的选项中删除“ n”?
df3 = pd.DataFrame({'col1':['a','b','c'],
'0':['str_a1','str_b1','str_c1'],
'1':['srt_a2','str_b2','str_c2']})
df3
col1 0 1
0 a str_a1 srt_a2
1 b str_b1 str_b2
2 c str_c1 str_c2
我通过“横向”看数据框而不是“垂直”看得到了答案。我上面提到的“ n”不是splash58指出的索引名称。我必须说,我曾经这样认为。
然后,我注意到'n'与其他列名称位于同一行。因此,它必须是列索引的名称。
实际上,如果您这样做:
import pandas as pd
df = pd.DataFrame({'col1':['a','a','b','b','c','c'],
'col2':['str_a1','str_a2','str_b1','str_b2','str_c1','str_c2']})
df2 = df.assign(n=df.groupby('col1').cumcount()).pivot(index='col1',columns='n',values='col2').reset_index()
print(df2)
你得到:
n col1 0 1
0 a str_a1 str_a2
1 b str_b1 str_b2
2 c str_c1 str_c2
之后,如果您这样做:
df2.columns.name
你得到:
'n'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句