Python 在列中附加值为_counts()的列
我有一个名为output的数据帧,如下所示:Python 在列中附加值为_counts()的列,python,pandas,dataframe,append,Python,Pandas,Dataframe,Append,我有一个名为output的数据帧,如下所示: created_at 0 1/8/2017 0:00 1 1/8/2017 0:00 2 1/8/2017 0:00 3 1/8/2017 0:00 4 1/8/2017 0:00 5 1/8/2017 1:00 6 1/8/2017 2:00 7 1/8/2017 3:00 1/8/2017 0:00 5 1/8/2017 1:00 1 1/8/2017 3:00 1 1/8/2017 2:00 1
created_at
0 1/8/2017 0:00
1 1/8/2017 0:00
2 1/8/2017 0:00
3 1/8/2017 0:00
4 1/8/2017 0:00
5 1/8/2017 1:00
6 1/8/2017 2:00
7 1/8/2017 3:00
1/8/2017 0:00 5
1/8/2017 1:00 1
1/8/2017 3:00 1
1/8/2017 2:00 1
created_at count
0 1/8/2017 0:00 NaN
5 1/8/2017 1:00 NaN
6 1/8/2017 2:00 NaN
7 1/8/2017 3:00 NaN
import pandas as pd
df1 = pd.read_csv(path1)
df2 = pd.read_csv(path2)
output = pd.merge(df1, df2, how="inner", on="created_at")
df3 = output.created_at.value_counts()
output = output.drop_duplicates()
output = output.sort_values(by=['created_at'])
output['count'] = df3
print(output,'\n\n')
我想计算特定时间在名为df3的数据帧中出现的次数。结果如下:
created_at
0 1/8/2017 0:00
1 1/8/2017 0:00
2 1/8/2017 0:00
3 1/8/2017 0:00
4 1/8/2017 0:00
5 1/8/2017 1:00
6 1/8/2017 2:00
7 1/8/2017 3:00
1/8/2017 0:00 5
1/8/2017 1:00 1
1/8/2017 3:00 1
1/8/2017 2:00 1
created_at count
0 1/8/2017 0:00 NaN
5 1/8/2017 1:00 NaN
6 1/8/2017 2:00 NaN
7 1/8/2017 3:00 NaN
import pandas as pd
df1 = pd.read_csv(path1)
df2 = pd.read_csv(path2)
output = pd.merge(df1, df2, how="inner", on="created_at")
df3 = output.created_at.value_counts()
output = output.drop_duplicates()
output = output.sort_values(by=['created_at'])
output['count'] = df3
print(output,'\n\n')
我想在df3中添加两个标题,分别为created_at和count
我首先做的是从输出数据帧中删除重复项,并对值进行排序,得到如下结果:
created_at
0 1/8/2017 0:00
5 1/8/2017 1:00
6 1/8/2017 2:00
7 1/8/2017 3:00
现在,我在输出数据帧中添加了列count,但得到的结果如下:
created_at
0 1/8/2017 0:00
1 1/8/2017 0:00
2 1/8/2017 0:00
3 1/8/2017 0:00
4 1/8/2017 0:00
5 1/8/2017 1:00
6 1/8/2017 2:00
7 1/8/2017 3:00
1/8/2017 0:00 5
1/8/2017 1:00 1
1/8/2017 3:00 1
1/8/2017 2:00 1
created_at count
0 1/8/2017 0:00 NaN
5 1/8/2017 1:00 NaN
6 1/8/2017 2:00 NaN
7 1/8/2017 3:00 NaN
import pandas as pd
df1 = pd.read_csv(path1)
df2 = pd.read_csv(path2)
output = pd.merge(df1, df2, how="inner", on="created_at")
df3 = output.created_at.value_counts()
output = output.drop_duplicates()
output = output.sort_values(by=['created_at'])
output['count'] = df3
print(output,'\n\n')
我想要实现的是一个名为result的数据帧,它应该如下所示:
created_at count
0 1/8/2017 0:00 5
5 1/8/2017 1:00 1
6 1/8/2017 2:00 1
7 1/8/2017 3:00 1
我该怎么做?我的代码如下:
created_at
0 1/8/2017 0:00
1 1/8/2017 0:00
2 1/8/2017 0:00
3 1/8/2017 0:00
4 1/8/2017 0:00
5 1/8/2017 1:00
6 1/8/2017 2:00
7 1/8/2017 3:00
1/8/2017 0:00 5
1/8/2017 1:00 1
1/8/2017 3:00 1
1/8/2017 2:00 1
created_at count
0 1/8/2017 0:00 NaN
5 1/8/2017 1:00 NaN
6 1/8/2017 2:00 NaN
7 1/8/2017 3:00 NaN
import pandas as pd
df1 = pd.read_csv(path1)
df2 = pd.read_csv(path2)
output = pd.merge(df1, df2, how="inner", on="created_at")
df3 = output.created_at.value_counts()
output = output.drop_duplicates()
output = output.sort_values(by=['created_at'])
output['count'] = df3
print(output,'\n\n')
任何和所有的帮助都将不胜感激
谢谢在调用
值\u计数
后,使用重置\u索引
重命名\u轴
df.created_at.value_counts().rename_axis('created_at').reset_index(name='count')
created_at count
0 1/8/2017 0:00 5
1 1/8/2017 2:00 1
2 1/8/2017 1:00 1
3 1/8/2017 3:00 1
或者,使用
groupby
+agg
:
df.groupby('created_at').created_at.agg([('count', 'count')]).reset_index()
created_at count
0 1/8/2017 0:00 5
1 1/8/2017 1:00 1
2 1/8/2017 2:00 1
3 1/8/2017 3:00 1
结果df不是我所拥有的,而是我所期望的输出