擅长:python、mysql、java
<p>你用一张长桌子做了一张宽桌子。通常在数据分析中,你想做的恰恰相反。这里有一个方法,它首先统计每个变量名、身高和年龄的出现次数,然后按你想要的方式旋转它们。在</p>
<pre><code>df['group_num'] = df.groupby(['event', 'event_date','event_time']).cumcount() + 1
df = df.sort_values('group_num')
df1 = df.set_index(['event', 'event_date','event_time', 'group_num']).stack().reset_index()
df1['var_names'] = df1['level_4'] + '_' + df1['group_num'].astype(str)
df1 = df1.drop(['group_num', 'level_4'], axis=1)
df1.set_index(['event', 'event_date', 'event_time', 'var_names']).squeeze().unstack('var_names')
var_names age_1 age_2 age_3 height_1 height_2 height_3 \
event event_date event_time
1 2015-05-06 14:00 24 55 22 185 176 193
2 2015-05-14 17:00 72 42 None 178 184 None
var_names name_1 name_2 name_3
event event_date event_time
1 2015-05-06 14:00 J Bloggs P Smith T Kirk
2 2015-05-14 17:00 B Gates J Mayer None
</code></pre>