假设我有一个包含大型数据集的csv文件。此csv文件是从DB创建的,即它本质上是一个表。什么是迭代这个csv文件并计算平均值或总和或使用Python进行一般计算的最佳方法?
例如:csv文件具有用户ID以及与之关联的金额和日期。现在我需要计算每个用户每月的支出。请注意,userid不是主键,用户可能已购买
如何使用pandas或其他任何方式加载数据?
答案 0 :(得分: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()
答案 1 :(得分:0)
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"]))