У меня есть один фрейм данных, как показано ниже. Я хочу добавить один столбец, чтобы хранить, сколько раз дата встречается в этом фрейме данных. Спасибо.
import pandas as pd
import numpy as np
df2 = pd.DataFrame({
'date': [20130101,20130101, 20130105, 20130105, 20130107, 20130108],
'price': [25, 16.3, 23.5, 27, 40, 8],
})
да, например, 20130101 встречается 2 раза, поэтому в столбце E номер 2.
Пытаться:
df2['Occur']=df2.groupby('date')['date'].transform(pd.Series.value_counts)
print(df2)
ИЛИ:
df2['Occur']=df2['date'].apply(df2['date'].tolist().count)
print(df2)
Оба воспроизводят:
date price Occur
0 20130101 25.0 2
1 20130101 16.3 2
2 20130105 23.5 2
3 20130105 27.0 2
4 20130107 40.0 1
5 20130108 8.0 1
Использование GroupBy
+ transform
с size
:
df2['date_count'] = df2.groupby('date')['date'].transform('size')
print(df2)
C D date price date_count
0 25 2.3 20130101 25 2
1 163 4.2 20130101 163 2
2 235 6.8 20130105 235 2
3 -25 8.8 20130105 -25 2
4 40 11.3 20130107 40 1
5 -8 15.8 20130108 -8 1
ты имеешь в виду каждое свидание?