【问题标题】:Python count number of daily changes in panel dataPython 统计面板数据的每日变化次数
【发布时间】:2021-02-01 18:55:07
【问题描述】:

我有一个面板数据的熊猫数据框,其中每一行是个人的时间序列,每一列是时间序列中的一天。我想每天计算每天变化的次数,以便确定每天变化的个人百分比。

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'])

【问题讨论】:

  • 你能添加一个预期的输出吗?
  • 预期的输出将是一天变化的时间序列,所以 [1,2]

标签: python pandas panel-data


【解决方案1】:

将索引设置为名称,然后转置 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

然后用 True 和 False 替换 'yes' 和 'no' 值

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

【讨论】:

    猜你喜欢
    • 2019-10-31
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多