用pandas绘制图表只显示某些值

2024-04-20 10:45:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个只包含来自另一个数据帧的2列的数据帧:

df1 = df[["BNF Chapter", "Name"]]
df1

这显示了一个包含两列的数据帧。我已经按功能进行了分组,以便在每个章节(例如1)中显示特定章节的药物名称

df1.groupby(['BNF Chapter','Name'])['BNF Chapter'].sum()

^{pr2}$

我怎样才能在第一章特定的图表上画出这一点,并在图表的一侧标出药物的名称和处方的次数?在

我将非常感谢你在这方面的任何帮助!在

任何帮助都将不胜感激!!:)


Tags: 数据name功能名称df图表chapterdf1
3条回答

如果您希望框架的行数与章节数相同,那么可以这样做,它为每个BNF Chapter提供一个名称列表。在

df1.groupby('BNF Chapter').Name.apply(lambda x: [x])

编辑 对于你提出的关于绘制单个药物(组合)的问题,假设没有太多,你可以这样做,我注意到你说的只是第一章。在

我假设这个命令产生了问题中显示的输出。 df1.groupby(['BNF Chapter','Name'])['BNF Chapter'].sum()

如果是这样,您可以这样做:

^{pr2}$

如果BNF Chapter不是字符串,请删除引号,使.loc['1']变成{}。在

您可以对列执行groupby,但仍可以访问该列-

df1.groupby(['BNF Chapter','Name'])['BNF Chapter'].sum() 

如果我没弄错的话,你要做的是把一个特定BNF章节的匹配名称聚合成一个集合?在

我在偷μ介子的答案

# if list of unique items is desired, use set
df.groupby('A',as_index=False)['B'].aggregate(lambda x: set(x))

# if duplicate items are okay, use list
df.groupby('A',as_index=False)['B'].aggregate(lambda x: list(x))

相关问题 更多 >