如何将value_counts()输出附加到原始df?

时间:2019-06-28 22:21:23

标签: python pandas dataframe count

所以我有以下df

       Open      High       Low     Close  
0    0.001268  0.001277  0.001266  0.001271   
1    0.001268  0.001269  0.001265  0.001266   
2    0.001265  0.001265  0.001242  0.001254   
3    0.001253  0.001271  0.001244  0.001251   
4    0.001253  0.001259  0.001249  0.001257   
5    0.001257  0.001260  0.001241  0.001248

运行此行时:

df["Open"].value_counts()

我得到以下输出:

0.001253    2
0.001268    2
0.001265    1
0.001257    1

我不知道如何将输出添加到原始df上,使其看起来像这样:

       Open      High       Low     Close     Open_count  
0    0.001268  0.001277  0.001266  0.001271       2
1    0.001268  0.001269  0.001265  0.001266       2
2    0.001265  0.001265  0.001242  0.001254       1
3    0.001253  0.001271  0.001244  0.001251       2
4    0.001253  0.001259  0.001249  0.001257       2
5    0.001257  0.001260  0.001241  0.001248       1

非常感谢您的提前帮助。

2 个答案:

答案 0 :(得分:1)

使用map

df['Open_count'] = df['Open'].map(df['Open'].value_counts())

输出:

       Open      High       Low     Close  Open_count
0  0.001268  0.001277  0.001266  0.001271           2
1  0.001268  0.001269  0.001265  0.001266           2
2  0.001265  0.001265  0.001242  0.001254           1
3  0.001253  0.001271  0.001244  0.001251           2
4  0.001253  0.001259  0.001249  0.001257           2
5  0.001257  0.001260  0.001241  0.001248           1

答案 1 :(得分:0)

int[]是你的朋友:

merge

输出:

s = df["Open"].value_counts()

df.merge(s, left_on='Open', right_index=True,
         suffixes=['','_count'])