<p>第一个if use<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html" rel="nofollow noreferrer">^{<cd1>}</a>如果重复,<code>Weight</code>的值是聚合的(如前两行):</p>
<pre><code>df = pd.pivot_table(df, index=['Name', 'DayOfYear'], values='Weight')
</code></pre>
<p>然后与<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.core.groupby.GroupBy.agg.html" rel="nofollow noreferrer">^{<cd4>}</a>中的聚合列表一起使用<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reset_index.html" rel="nofollow noreferrer">^{<cd3>}</a>:</p>
<pre><code>df1 = df.reset_index(level=1).groupby(level=0).agg(list)
print (df1)
DayOfYear Weight
Name
Carl [20, 51, 77, 190, 260, 333] [60.4, 60.3, 58.2, 60.6, 59.7, 60.5]
Tina [1, 70, 140, 210, 365] [77.1, 74.0, 73.4, 73.6, 75.0]
</code></pre>
<p>最后将输出转换为列表:</p>
<pre><code>what_i_want_x = df1['DayOfYear'].tolist()
what_i_want_y = df1['Weight'].tolist()
print (what_i_want_x)
[[20, 51, 77, 190, 260, 333], [1, 70, 140, 210, 365]]
print (what_i_want_y)
[[60.4, 60.3, 58.2, 60.6, 59.7, 60.5], [77.1, 74.0, 73.4, 73.6, 75.0]]
</code></pre>
<p>编辑:</p>
<pre><code>p = pd.pivot_table(df, index=['Name', 'DayOfYear'], values='Number', columns='Type')
print (p)
Type Height Weight
Name DayOfYear
Carl 20 172.3 60.4
51 172.3 60.3
77 172.3 58.2
190 172.3 60.6
260 172.3 59.7
333 172.3 60.5
Tina 1 165.9 77.1
70 165.9 74.0
140 165.9 73.4
210 165.9 73.6
365 165.9 75.0
df1 = p.rename(columns=str).reset_index(level=1).groupby(level=0).agg(list)
print (df1)
Type DayOfYear Height \
Name
Carl [20, 51, 77, 190, 260, 333] [172.3, 172.3, 172.3, 172.3, 172.3, 172.3]
Tina [1, 70, 140, 210, 365] [165.9, 165.9, 165.9, 165.9, 165.9]
Type Weight
Name
Carl [60.4, 60.3, 58.2, 60.6, 59.7, 60.5]
Tina [77.1, 74.0, 73.4, 73.6, 75.0]
</code></pre>