相同日期的单元格总和

时间:2019-10-13 21:21:53

标签: python pandas

在Python和Jupiter Notebook方面,我是一个完全菜鸟。我正在参加Python入门课程,并已分配任务。这是从.csv文件中提取信息。以下是我的.csv文件的快照,该文件名为“ feeds1.csv”

https://i.imgur.com/BlknyC3.png

我可以将.csv导入Jupyter Notebook,并尝试使用groupby函数对其进行排序。但由于列中也有时间,因此无法使用。

import pandas as pd
df = pd.read_csv("feeds1.csv")

我需要它输出如下:

https://i.imgur.com/BDfnZrZ.png

最终目标是使用这些累积的数据创建一个csv文件,并使用它来绘制图表,

2 个答案:

答案 0 :(得分:0)

首先,您需要正确解析日期:

df["date_string"] = df["created_at"].str.split(" ").str[0]
df["date_time"] = pd.to_datetime(df["date_string"])
# You can chose to drop earlier columns

# Now you just want to groupby with the date and apply the aggregation/function you want to 
df = df.groupby(["date_time"]).sum("field2").reset_index() # for example
df.to_csv("abc.csv", index=False)

答案 1 :(得分:0)

如果您不需要一天中的时间,而只需要日期,则可以使用以下方法:

df.created_at = df.created_at.str.split(' ').str[0]  
dfout = df.groupby(['created_at']).count()
dfout.reset_index(level=0, inplace=True)
finaldf = dfout[['created_at', 'entry_id']]
finaldf.columns = ['Date', 'field2']
finaldf.to_csv('outputfile.csv', index=False)

第一行将在日期和时间之间的空格处分隔created_at列。 .str[0]表示它将仅保留拆分的第一部分(即日期)。
第二行按日期将它们分组,然后为您计数。
写入csv时,如果您不希望索引显示(如您的图片所示),请使用index=False。如果您想要索引,则只需忽略该部分即可。