使用 pandas 查找数据框列中的前 3 个

2024-02-26

我有一个时间序列数据集,如下所示:

Date        Newspaper   City1    City2   Region1Total   City3   City4  Region2Total
2017-12-01  NewsPaper1  231563   8696    240259         21072   8998   30070
2017-12-01  NewsPaper2  173009   12180   185189         28910   5550   34460
2017-12-01  NewsPaper3  40511    4600    45111          5040    3330   8370
2017-12-01  NewsPaper4  37770    2980    40750          6520    1880   8400
2017-12-01  NewsPaper5  5176     900     6076           1790    5000   6790
2017-12-01  NewsPaper6  137650   8025    145675         25300  11000   36300
2017-12-01  Total       637547   38201   675748         91032  36558   127590

2018-01-01  NewsPaper1  231295   8391    239686         8790   21176   29966
2018-01-01  NewsPaper2  169937   12130   182067         7890   28850   36740
2018-01-01  NewsPaper3  40453    4570    45023          4750   5055    9800
2018-01-01  NewsPaper4  37766    2970    40736          2500   6540    9040
2018-01-01  NewsPaper5  5136     900     6036           5600   1795    7365
2018-01-01  NewsPaper6  137990   8010    146000         14500  25330   39830
2018-01-01  Total       633919   37786   671705         44980  91141   136121 

我试图找到该数据帧每一列中的最大 n 值。我尝试了以下方法

somelist = []
data = pd.read_excel('newspaper.csv')
data.index = pd.to_datetime(data['Date'], errors='coerce')
last_month = data.loc[data.index[-1]] # i am considering only the previous month(latest month in the dataframe)
last_month.set_index('Newspaper', inplace = True)
for city in last_month.iloc[:, 2: ]:
    top_3 = last_month[city].nlargest(4)[1: ] #highest will be total but we should skip it
    somelist.append(top_3)
print(somelist)

这会产生 pandas 系列的结果,列名称如下:

    [Newspaper
    Newspaper1    231295
    Newspaper2    169937
    Newspaper6    137990
    Name: City1, dtype: float64, Newspaper
    Newspaper2    12130.0
    Newspaper1     8391.0
    Newspaper6     8010.0
    Name: City2, dtype: float64, Newspaper
    Newspaper1    240259
    Newspaper2    185189
    Newspaper6    145675
    Name: Region1Total, dtype: float64, Newspaper
    Newspaper6    14500.0
    Newspaper1     8790.0
    Newspaper2     7890.0
    Name: City3, dtype: float64, Newspaper
    Newspaper2    28850.0
    Newspaper6    25330.0
    Newspaper1    21176.0
    Name: City4, dtype: float64, Newspaper
    Newspaper6    36300
    Newspaper2    34460
    Newspaper1    34460
    Name: Region2Total, dtype: float64, Newspaper]

我想要的是每个城市和地区销量前三名的报纸以及按销量降序排列的销量数字。我还希望在显示前 3 个结果之前打印城市/地区的名称。

预期输出是一个列表或一系列,如下所示:

Newspaper     City1
Newspaper1    231295
Newspaper2    169937
Newspaper6    137990

Newspaper     City2
Newspaper2    12130.0
Newspaper1     8391.0
Newspaper6     8010.0

Newspaper     Region1Total
Newspaper1    240259
Newspaper2    185189
Newspaper6    145675

Newspaper     City3
Newspaper6    14500.0
Newspaper1     8790.0
Newspaper2     7890.0

Newspaper     City4
Newspaper2    28850.0
Newspaper6    25330.0
Newspaper1    21176.0

Newspaper     Region2Total
Newspaper6    36300
Newspaper2    34460
Newspaper1    34460

另外,如果我想跳过地区而只考虑城市,那么我该如何做呢? 任何帮助,将不胜感激。先感谢您。


首先,您需要获取一个数据框,其中仅列出报纸,而不是总数。

dff = df.loc[df['Newspaper']!='Total']

那么对于city1, 你可以做:

dff[['Newspaper', 'City1']].sort_values(['City1'], ascending=False).head(3)

Output:

     Newspaper  City1
0   NewsPaper1  231563
1   NewsPaper2  173009
5   NewsPaper6  137650

同样,您可以获得所有感兴趣列的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pandas 查找数据框列中的前 3 个 的相关文章

  • python 函数中的对象不可迭代错误

    我有一个简单的功能如下 comdList range 0 27 for t in comdList print t 但是它返回一个 in object not iterable 错误 在函数之外它工作正常 这是怎么回事 尝试这个 for t
  • 在Python中将月份和年份的列合并为季度和年份的列

    我有一个数据框 df Month 1 8 Year 2015 2020 df pd DataFrame data df df 想要将其转变为新列 期望的输出 df Month 1 8 Year 2015 2020 Quarter Q1201
  • dask分布式内存错误

    在分布式作业上运行 Dask 时 我在调度程序上遇到以下错误 distributed core ERROR Traceback most recent call last File usr local lib python3 4 dist
  • 识别文本中的多个类别和相关情感

    如果您有一个文本语料库 如何识别所有类别 来自预定义类别列表 以及与之相关的情绪 正面 负面写作 我将在 Python 中执行此操作 但现阶段我不一定要寻找特定于语言的解决方案 让我们用一个例子来看看这个问题 试图澄清我的问题 如果我有一整
  • 构建wheel失败/“错误:INCLUDE环境变量为空”

    我正在使用 Python 2 7 11 并尝试 pip install 模块 但是其中一些模块失败了 我收到的消息是 无法为 X 构建轮子 和 错误 包含环境变量为空 我尝试安装 Scrapy LXML 和 Twisted 但都失败了 我尝
  • 如何循环遍历列表中除最后一项之外的所有项? [复制]

    这个问题在这里已经有答案了 Using a for循环 如何循环遍历列表中除最后一项之外的所有项 我想遍历一个列表 检查每个项目与后面的项目 我可以在不使用索引的情况下做到这一点吗 for x in y 1 If y是一个生成器 那么上面的
  • Python httplib 和 POST

    我目前正在使用别人编写的一段代码 它用httplib向服务器发出请求 它以正确的格式提供所有数据 例如消息正文 标头值等 问题是 每次尝试发送 POST 请求时 数据都在那里 我可以在客户端看到它 但没有任何内容到达服务器 我已经阅读了库规
  • Python for 循环前瞻

    我有一个 python for 循环 其中我需要向前查看一项以查看在处理之前是否需要执行某项操作 for line in file if the start of the next line 0 perform pre processing
  • 用于监视文件夹和更新数据库的 Python 守护进程

    这专门用于管理 MP3 文件 但它应该可以轻松地适用于任何包含大量文件的目录结构 我想找到或编写一个守护程序 最好用Python 来监视一个包含许多子文件夹的文件夹 这些子文件夹都应该包含X个MP3文件 每当添加 更新或删除文件时 它都应该
  • Python pandas:向我的数据框中添加一列来计算变量

    我有一个像这样的数据框 gt org group org1 1 org2 1 org3 2 org4 3 org5 3 org6 3 我想将列 count 添加到 gt 数据帧以计算组的成员数量 预期结果如下 org group count
  • 为什么变量 1 += 变量 2 比变量 1 = 变量 1 + 变量 2 快得多?

    我继承了一些 Python 代码 用于创建巨大的表 最多 19 列宽 5000 行 花了九秒用于在屏幕上绘制表格 我注意到每一行都是使用以下代码添加的 sTable sTable n GetRow where sTable是一个字符串 我将
  • Python - 将列表作为参数传递给 SQL,以及更多变量

    我试图在 python 3 6 中将未知数量的参数传递给 SQL Server 这是我使用 pypyodbc 的代码 cursor cnxn cursor theargs 1033286869 1053474957 1063654630 1
  • 确定对角线周围的边界矩形

    用户将在屏幕上定义一条线 绘制时该线将具有给定的粗细 or width I now need to be able to determine the coordinates of a bounding rectangle around th
  • 如何在 pandas 数据框中创建包含现有行字符串中的单词的新行?

    我有一个DataFrame in pandas有一个名为df strings与文本字符串 我想将这些字符串的各个单词放在自己的行上 并在其他列中使用相同的值 例如 如果我有 3 个字符串 以及一个不相关的列 时间 Strings Time
  • 将返回值从操作符传递给气流中的后续操作符

    我试图给一个字符串列表source objects字段为GoogleCloudStorageToBigQueryOperator但使用以下代码我收到错误 字符串索引必须是整数 而不是 unicode 我不知道的事情 我如何获得return的
  • 分别记录 stdout 和 stderr 时截断的输出日志文件

    我在上下文管理器中设置了一个子进程命令 该命令通过我自己的记录器将 stdout 和 stderr 通过管道传输到单独的文件 这是此处给出的答案的变体 https stackoverflow com a 4838875 4844311 ht
  • 将 mysql 连接传递给 python 线程时管道损坏

    我正在尝试将 mysql 连接传递给 python 中的线程 如果我在工作类中进行 mysql 的初始化 则不会出现错误 但是 连接的成本可能很高 因此我尝试仅从调用者函数传递 mysql 连接 请参见下面的代码 但这一直抛出这个错误 20
  • 张量流:RStudio 中的 [NOT FOUND] 错误

    我尝试在中运行以下代码RStudio library tensorflow x data lt runif 100 min 0 max 1 y data lt x data 0 1 0 3 W lt tf Variable tf rando
  • 非英语语言(CJK 等)中的 n 元语法名称分析

    我正在致力于对人员数据库进行重复数据删除 对于第一遍 我遵循基本的两步过程 以避免对整个数据库进行 O n 2 操作 如所述在文献中 http nike psu edu publications jcdl05 pdf 首先 我 阻止 迭代整
  • 类型错误:“str”不支持缓冲区接口

    import hashlib infile open P r mp3 r b data infile readline hash hashlib md5 hash update data hash digest hash hexdigest

随机推荐

  • 使用其他字典值在字典中传递变量

    当使用另一个字典值作为参数时 如何将包含变量的值分配给字典键 Example name Test vars hosts localhost vars foo a foo a value b a tasks name Fix owneship
  • GIT:如何查看原点的拉/推更改

    我刚刚开始使用 Git 以前称为 Subversion 我遇到了真正的问题 无法看到原始存储库中推送或拉取的更改 我的 架构 是这样的 MAIN CODEBASE gt Development repository 1 gt Develop
  • ABTableViewCell - 添加 UIButton

    我一直在使用 ABTableViewCell 创建快速滚动单元格 除了我不知道如何将 UIButton 添加到我的自定义单元格之外 一切都工作得很好 使用ABTableViewCell 时 您可以使用drawAtPoint 或drawInR
  • 使用 php mail() 函数发送链接

    用户应收到以下格式的电子邮件 复制令牌 xxxxx 并将其粘贴到此Link 我的代码 message Copy the token token generator 10 And paste it in the link a href rec
  • 解析字符串 C# LINQ 表达式

    我试图在这里做一些真正的动态查询 最好不要在运行时调用编译器 我有一个包含 LINQ 表达式的字符串 例如 var s from a in queryable where a Type 1 select a 我怎样才能从中得到结果 IQue
  • 当 Ec2 作为角色运行尝试在 AWS 中获取会话令牌时出错

    我正在 EC2 上运行一个应用程序 使用具有以下权限的角色 sts GetSessionToken sts AssumeRole 当我尝试使用该角色获取临时凭据时 出现错误 Cannot call GetSessionToken with
  • 将 div 宽度设置为不带内联块的内容,并使 div 彼此中心对齐

    我想要一些 div 从其内容中获取宽度 Display inline block 可以做到这一点 但我也希望 div 位于彼此下方 而不是浮动时彼此相邻 使用 float left 而不是 inline block 可以做到这一点 但我希望
  • fetch() 可以做responseType=document吗?

    XHR s responseType document 非常棒 因为它会返回一个 DOM 文档 您可以在其中使用 querySelector 等 var xhr new XMLHttpRequest xhr open GET true xh
  • Microsoft Hive ODBC 驱动程序 2.1.5 超时

    我最近升级到 Microsoft hive odbc 驱动程序版本 2 01 05 1006 于 2016 年 12 月 8 日发布 我的代码适用于驱动程序的先前版本 1 0 现在 当运行我的代码时 我不断收到以下错误 错误 HY000 M
  • PyCharm 的优化导入也可以按字母顺序排列吗?

    我很喜欢 PyCharm 对 Python 导入的优化 以及删除未使用的导入 遵循 PEP8 为它们提供了合理的布局并使它们更易于阅读 有没有办法让 PyC harm 额外按字母顺序排列它们 这将使扫描速度更快 至少对我来说 PyCharm
  • 在 ggplot2 中显式设置面板大小(不仅仅是绘图大小)

    是否可以在 ggplot 中显式设置面板大小 即灰色网格面板 我想象 但找不到 有一些 ggplot 扩展允许类似于panel width unit 3 in panel height unit 4 in 我已经看到了设置整个图大小的解决方
  • 在 Eclipse 中分离编辑器

    有没有办法将编辑器与主 Eclipse 窗口分离 我知道这对于 netbeans 是可能的 但到目前为止我还无法弄清楚如何使用 eclipse 做到这一点 如果可能的话 选择 窗口 新窗户 似乎是分离编辑器的密切替代者 此命令创建一个新的
  • FCM 注册 ID 令牌的最大长度是多少?

    使用 新 Firebase Cloud Messaging 我想可靠地保存客户端设备registration id令牌到本地服务器数据库 以便服务器软件可以向它们发送推送通知 为了保存 100 生成的客户端注册令牌 我应该使用的数据库字段的
  • LD_LIBRARY_PATH 优先级和编译问题

    我正在尝试在Linux机器上安装一些软件 python的rpy2包 特别是rpy2 robjects 如果重要的话 我需要该软件在我的本地空间中查找其共享库 而不是在 usr lib64 等全局空间中查找 我没有这台机器的管理员权限 我的问
  • 如何将 Prisma 与 Electron 结合使用

    我正在使用 Prisma sqlite DB 和 Electron Angular 应用程序 一切正常 直到我尝试创建记录 我在控制台中多次重复收到此错误 https i stack imgur com I0beD png 这是我的 sch
  • MySQL 配置的 JDBC url 使用 utf8 字符编码

    MySQL 5 6 配置 我已经配置了 etc mysql my cnf手动使用utf8 见下文 mysqld character set server utf8 character sets dir usr share mysql cha
  • 如何将命令行参数传递给 Gradle Kotlin DSL

    这是 Groovy 的一个示例 它准确地代表了我想要实现的目标 Command line gradlew jib PmyArg hello build gradle kts task myTask doFirst println myArg
  • RecyclerView 以编程方式单击

    我正在尝试以编程方式单击 recyclerView 的一项 我在用着 recyclerView findViewHolderForAdapterPosition index itemView performClick 当索引属于可见项时 这
  • 如何将 Google Analytics 与 next.js 应用程序一起使用?

    我将 styled components 与 next js 一起使用 因此我的样式需要在服务器端渲染 因此如何将 google 分析添加到我的网站 我检查了next js 谷歌分析示例 https github com zeit next
  • 使用 pandas 查找数据框列中的前 3 个

    我有一个时间序列数据集 如下所示 Date Newspaper City1 City2 Region1Total City3 City4 Region2Total 2017 12 01 NewsPaper1 231563 8696 2402