Суммируйте ячейки с той же датой - PullRequest
0 голосов
/ 14 октября 2019

Я полный нуб в этом материале для Python и Jupiter Notebook. Я беру вступление к курсу Python, и мне поручили задание. Это для извлечения информации из файла .csv. Ниже приведен снимок моего файла .csv под названием «feeds1.csv»

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

. Я могу импортировать .csv в блокнот Jupyter, и попробовал сгруппировать функцию для его сортировки. Но это не сработает из-за того, что в столбце также есть время.

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

Мне нужно вывести его следующим образом:

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

Конечная цель состоит в том, чтобы создать CSV-файл с этими накопленными данными и использовать его для построения диаграммы

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

Если вам нужно не время, а только дата, вы можете просто использовать это:

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. Если вы хотите индекс, то просто пропустите эту часть.

0 голосов
/ 14 октября 2019

Сначала вам нужно разобрать дату правильно:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...