更新:我真的试过让我的示例代表参加,结果却没有。我更新了这个问题,因为精神是一样的,只是有点复杂
我正在使用一个大熊猫数据集,我想从中提取数据进行绘图。这个小例子应该说明这一点:
import pandas as pd
df = pd.DataFrame({'Name': pd.Categorical(['Carl', 'Carl', 'Carl', 'Tina', 'Tina', 'Tina',
'Carl', 'Carl', 'Tina', 'Tina', 'Carl', 'Carl'] * 2),
'DayOfYear': [51, 20, 20, 1, 70, 140, 77, 190, 210, 365, 260, 333] * 2,
'Type': pd.Categorical(['Weight'] * 12 + ['Height'] * 12),
'Number': [60.3, 61.0, 59.8, 77.1, 74.0, 73.4, 58.2, 60.6, 73.6, 75.0, 59.7, 60.5,
172.3, 172.3, 172.3, 165.9, 165.9, 165.9,
172.3, 172.3, 165.9, 165.9, 172.3, 172.3],
})
我从分组开始,但改为透视表,因为工作流似乎更简单,应该是一样的,对吗?我尝试了很多东西,到目前为止,这让我离目标最近:
p = pd.pivot_table(df, index=['Name', 'DayOfYear'], values='Number', columns='Type')
对于打印,其余部分将转换为:
what_bqplot_needs_x = [
[20, 51, 77, 190, 260, 333],
[1, 70, 140, 210, 365],
[20, 51, 77, 190, 260, 333],
[1, 70, 140, 210, 365],
]
what_bqplot_needs_y = [
[60.4, 60.3, 58.2, 60.6, 59.7, 60.5],
[77.1, 74.0, 73.4, 73.6, 75.0],
[172.3] * 6,
[165.9] * 5,
]
我似乎不太理解/与熊猫相处,我真的很想了解如何通过按摩来达到目的
它不必是列表的列表,ndarray
数组也可以
我尝试调整jezrael’s answer,但第一个.reset_index(level=1)
已经崩溃:
TypeError: cannot insert an item into a CategoricalIndex that is not already an existing category
第一个if use^{} 如果重复,
Weight
的值是聚合的(如前两行):然后与^{} 中的聚合列表一起使用^{} :
最后将输出转换为列表:
编辑:
jezrael的速度更快,但在这里,您可以使用pandas
.groupby
进行另一种选择:相关问题 更多 >
编程相关推荐