【问题标题】:Computing a large data set from CSV [closed]从 CSV 计算大型数据集 [关闭]
【发布时间】:2016-08-27 21:22:35
【问题描述】:

假设我有一个包含大型数据集的 csv 文件。这个 csv 文件是从 DB 创建的,即它本质上是一个表。迭代此 csv 文件并计算平均值或总和或使用 Python 进行一般计算的最佳方法是什么?

例如:csv 文件有一个用户 ID 以及与之关联的金额和日期。现在我需要计算每个用户每月的支出。请注意,userid 不是主键,该用户可能已经购买了

应该如何加载数据,使用 pandas 或其他方式?

【问题讨论】:

标签: python python-2.7 python-3.x csv


【解决方案1】:

您绝对可以尝试 pandas,根据我从您的问题描述中了解到,您的 csv 文件格式如下:

user_id amount date
1241    1000   01/Aug/2016
....    ...    ....

这应该是一个足够好的解决方案,可以开始计算每个 user_id 的每月总支出

df = pd.read_csv('your_csv_filename_path.csv')

df.loc[:,'date'] = pd.to_datetime(df.loc[:,'date'])
df.loc[:,'month'] = pd.PeriodIndex(df['date'],freq='M')
monthly_spendings = df.groupby(['month','user_id'])['amount'].sum()

【讨论】:

  • 是的,没错。谢谢。
【解决方案2】:

csv 模块可以轻松读取 CSV 文件。例如,如果 CSV 文件的第一行包含列名,并且其中一个列名是“user_id”,则以下行将显示每一行的 user_id 字段:

import csv
for rec in csv.DictReader(open("somefile.csv", "rb")):
  print("User ID = {}".format(rec["user_id"]))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 2019-05-27
    • 2011-07-25
    • 2018-03-31
    • 1970-01-01
    • 2018-04-02
    相关资源
    最近更新 更多