我在学习pandas和python。
我有这样一个框架:
dfsupport = pd.DataFrame({'Date': ['8/12/2020','8/12/2020','13/1/2020','24/5/2020','31/10/2020','11/7/2020','11/7/2020','4/4/2020','1/2/2020'],
'Category': ['Table','Chair','Cushion','Table','Chair','Mats','Mats','Large','Large'],
'Sales': ['1 table','3chairs','8 cushions','3Tables','12 Chairs','12Mats','4Mats','13 Chairs and 2 Tables', '3 mats, 2 cushions 4@chairs'],
'Paid': ['Yes','Yes','Yes','Yes','No','Yes','Yes','No','Yes'],
'Amount': ['93.78','$51.99','44.99','38.24','£29.99','29 21 only','18','312.8','63.77' ]
})
字符串
其产生:
Date Category Sales Paid Amount
0 8/12/2020 Table 1 table Yes 93.78
1 8/12/2020 Chair 3chairs Yes 51.99
2 13/1/2020 Cushion 8 cushions Yes 44.99
3 24/5/2020 Table 3Tables Yes 38.24
4 31/10/2020 Chair 12 Chairs No 29.99
5 11/7/2020 Mats 12Mats Yes 29.21
6 11/7/2020 Mats 4Mats Yes 18
7 4/4/2020 Large 13 Chairs and 2 Tables No 312.8
8 1/2/2020 Large 3 mats, 2 cushions 4@chairs Yes 63.77
型
我想找到销售最多的日期,所以我运行:
print("######\n",dfsupport['Date'].value_counts().max())
型
其给出:
2
型
我现在要做的是解包2
,并找出哪些日期,以及哪些“销售”发生在每个示例中。
我被卡住了,不知道如何打印出这些列。将感谢一些指导。
4条答案
按热度按时间wmomyfyw1#
另一种可能的解决方案,使用
pandas.DataFrame.groupby
,pandas.DataFrame.transform
和boolean
索引:字符串
输出量:
型
k3bvogb12#
您可以将合并
mode
和isin
结合使用,以获取最频繁的日期和布尔索引:字符串
输出量:
型
中间体:
型
4smxwvx53#
value_counts给出列中值的频率:
字符串
max()给出的最大频率为2
请给予进一步的细节,你要检索或计算从样本数据
gk7wooem4#
以下是我的做法(我跳过了框架定义):
字符串
我没有得到最大值
dfsupport["Date"].value_counts().max()
,而是使用这个序列作为loc
函数的输入,该函数允许您访问一组行和列(official doc)。我将其分配给max_values
,以便之后轻松操作。由于你的最大销售额发生在两个不同的日子,我在
isin
函数中重用了loc函数。但是,max_values部分让我感兴趣的不是值本身,而是日期值的索引。这将给出以下输出:
型