You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何按volume_24h降序排序加密货币CSV数据?

问题原因分析与解决方案

核心错误点

  1. 完全多余的循环
    遍历DataFrame(for item in list)时,实际是在遍历列名(id、slug等),循环会重复执行多次但对排序毫无帮助——pandas的排序函数可以直接对整个DataFrame操作,根本不需要循环。

  2. pd.concat的误用

    • pd.concat要求第一个参数是pandas对象的可迭代集合(比如列表),你直接传入多个Series,不符合参数规范,因此抛出TypeError。
    • 更关键的是:你的原DataFrame已经包含slug、volume_24h这些列,完全不需要用concat重新组合,这一步属于无意义操作。
  3. sort_values的inplace参数陷阱
    当设置inplace=True时,sort_values会直接修改原DataFrame,并且返回None。所以new_list = list.sort_values(..., inplace=True)会让new_list变成None,打印自然没有内容。

正确代码实现

不需要复杂操作,两行代码就能完成需求:

import pandas as pd

# 读取数据(注意:不要用list当变量名,它是Python内置类型,会覆盖原有功能)
crypto_df = pd.read_csv("crypto_latests.csv")

# 按volume_24h降序排序,返回新的DataFrame(不修改原数据)
new_list = crypto_df.sort_values(by="volume_24h", ascending=False)

# 可选:如果只需要指定列,先筛选再排序
new_list = crypto_df[["slug", "volume_24h", "market_cap", "last_updated"]].sort_values(by="volume_24h", ascending=False)

# 打印结果
print(new_list)

补充说明

  • 如果需要直接修改原数据,可单独执行:crypto_df.sort_values(by="volume_24h", ascending=False, inplace=True),不需要赋值。
  • 避免使用Python内置类型名(如list、str)作为变量名,会引发潜在的语法问题。

内容的提问来源于stack exchange,提问作者BGX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 12:46:58