【问题标题】:How to sort CSV rows by a single column using PANDAS python如何使用 PANDAS python 按单列对 CSV 行进行排序
【发布时间】:2020-01-23 20:49:19
【问题描述】:

目前在我的项目中,我正在尝试按单个列对 CVS 表的行进行排序,我正在使用 PANDAS,并且我已经看到互联网上发布了几个示例,但是当我自己尝试实现这一点时,我无法到。

db = pd.read_csv(databasefile, skip_blank_lines=True, names=['ExampleOne','ExampleTwo','ExampleThree','ExampleFour'], header=1)
db.drop_duplicates(inplace=True)

db.sort_values(by=['ExampleOne'], ascending=[True])

db.to_csv(databasefile, index=False)

在上面的代码中,我的想法是我将 CSV 转换为供 PANDAS 使用的数据框,在该数据框中,我将删除所有重复的行并按 ExampleOne 列进行排序。最后,我将该信息发送回 CSV。但是,在代码运行无误后查看 CSV 时,数据未按任何顺序排序。

Database CSV Link

这是 txt 格式的 CSV,前 60 行左右已排序,但这是因为在此过程的早期我将多个 CSV 组合成一个 CSV。

感谢您的阅读!我将不胜感激任何人让我尝试的任何帮助或建议,因为这个问题让我感到沮丧。再次感谢您的阅读!

【问题讨论】:

  • db.sort_values(by=['ExampleOne'], ascending=[True], inplace=True) 或者您可以链接操作:db.sort_values(by=['ExampleOne'], ascending=[True]).to_csv(databasefile, index=False)
  • @QuangHoang 我还没有尝试过,因为我正在更新我的计算机上的一些软件,将 .to_csv 函数链接到排序函数实际上会有所不同吗?谢谢您的回复,等我的电脑恢复在线时一定要检查一下
  • 是的,没有 inplace 的 sort_values 返回排序后的数据框,而不是对原始数据框进行排序。
  • @QuangHoang 非常感谢!现在完美无缺,我没有意识到排序并没有取代原始数据框。再次感谢您!

标签: python pandas csv sorting


【解决方案1】:
databasefile = r"path"
databasefile2 = r"path"
db = pd.read_csv(databasefile, skip_blank_lines=True, names=['ExampleOne','ExampleTwo','ExampleThree','ExampleFour'], header=1)
print(db['ExampleOne'])
db.drop_duplicates(inplace=True)
db.sort_values(by=['ExampleOne'], ascending=True).to_csv(databasefile, index=False)

这里有一个解决您问题的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-07
    • 2019-08-23
    • 2015-10-29
    • 2018-04-11
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多