在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文件,并使用它来绘制图表,
答案 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
。如果您想要索引,则只需忽略该部分即可。