Python统计面板数据日变化次数
Python count number of daily changes in panel data
我有一个面板数据的 pandas 数据框,其中每一行是一个人的时间序列,每一列是时间序列中的一天。我想每天计算每天发生变化的次数,这样我就可以确定每天发生变化的个人百分比。
indiv = ['Tom', 'Mike', 'Dave']
date_one = ['yes', 'yes', 'no']
date_two = ['no', 'yes', 'no']
date_three = ['yes', 'yes', 'yes']
df = pd.DataFrame(zip(indiv, date_one, date_two, date_three), columns = ['name', '2020-01-29', '2020-01-30', '2020-01-31'])
将索引设置为名称然后转置 df。
df = df.set_index('name').T
name 2020-01-29 2020-01-30 2020-01-31
0 Tom yes no yes
1 Mike yes yes yes
2 Dave no no yes
然后将 'yes' 和 'no' 值替换为 True 和 False
df.replace({'yes': True, 'no': False}, inplace=True)
name 2020-01-29 2020-01-30 2020-01-31
0 Tom True False True
1 Mike True True True
2 Dave False False True
现在对各列求和...
df['changes'] = df.sum(axis=1)
导致
name Tom Mike Dave changes
2020-01-29 True True False 2
2020-01-30 False True False 1
2020-01-31 True True True 3
我有一个面板数据的 pandas 数据框,其中每一行是一个人的时间序列,每一列是时间序列中的一天。我想每天计算每天发生变化的次数,这样我就可以确定每天发生变化的个人百分比。
indiv = ['Tom', 'Mike', 'Dave']
date_one = ['yes', 'yes', 'no']
date_two = ['no', 'yes', 'no']
date_three = ['yes', 'yes', 'yes']
df = pd.DataFrame(zip(indiv, date_one, date_two, date_three), columns = ['name', '2020-01-29', '2020-01-30', '2020-01-31'])
将索引设置为名称然后转置 df。
df = df.set_index('name').T
name 2020-01-29 2020-01-30 2020-01-31
0 Tom yes no yes
1 Mike yes yes yes
2 Dave no no yes
然后将 'yes' 和 'no' 值替换为 True 和 False
df.replace({'yes': True, 'no': False}, inplace=True)
name 2020-01-29 2020-01-30 2020-01-31
0 Tom True False True
1 Mike True True True
2 Dave False False True
现在对各列求和...
df['changes'] = df.sum(axis=1)
导致
name Tom Mike Dave changes
2020-01-29 True True False 2
2020-01-30 False True False 1
2020-01-31 True True True 3