pandas groupby和聚合成新的列[英] pandas groupby and aggregate into new column

本文是小编为大家收集整理的关于pandas groupby和聚合成新的列的处理方法,想解了pandas groupby和聚合成新的列的问题怎么解决?pandas groupby和聚合成新的列问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

进行了一些搜索,但没有产生所需的结果,即按日期对数据进行分组并计算频率.我可以使用聚合来做到这一点,但我不确定如何使用结果创建一个新列,谢谢.

文件中的数据:

Domain  Dates
twitter.com 2016-08-08
google.com  2016-08-09
apple.com   2016-08-09
linkedin.com    2016-08-09
microsoft.com   2016-08-09
slack.com   2016-08-12
instagram.com   2016-08-12
ibm.com 2016-08-12

代码

import pandas as pd
import matplotlib.pyplot as plt
import datetime
import numpy as np

df = pd.read_csv('domains.tsv', sep='\t')
df = df.groupby([pd.to_datetime(df.Dates).dt.date]).agg({'Dates':'size'})
print(df)

产量

            Dates
Dates
2016-08-08      1
2016-08-09      4
2016-08-12      3

理想情况下,我希望计数列是"计数",然后我将另存为新的 csv.

推荐答案

import pandas as pd


df = pd.read_csv('domains.tsv', sep='\t')
counter = df.groupby('Dates').count().rename(columns={'Domain': 'count'})
counter.to_csv('count.csv')

您将在当前目录中获得包括以下结果的 count.csv.

Dates,count
2016-08-08,1
2016-08-09,4
2016-08-12,3

本文地址:https://www.itbaoku.cn/post/1728185.html