首页 > 解决方案 > 如何将 DataFrame 中的列与时间序列数据中的每个日期相加

问题描述

这是示例

'''

df = pd.DataFrame({'Country': ['United States', 'China', 'Italy', 'spain'],
                   '2020-01-01' : [0, 2, 1, 0]
                   '2020-01-02' : [1, 0, 1, 2]
                   '2020-01-03' : [0, 3, 2, 0]
df

'''

我想按日期对列的值求和,以便下一列具有附加值.__ 这意味着 2020-01-02 具有新的附加值 (2020-01-01+2020-01-02) 等等。 .

标签: python-3.xpandas

解决方案


Country列转换为索引DataFrame.set_indexDataFrame.cumsum按每行使用axis=1

df = df.set_index('Country').cumsum(axis=1)
print (df)
               2020-01-01  2020-01-02  2020-01-03
Country                                          
United States           0           1           1
China                   2           2           5
Italy                   1           2           4
spain                   0           2           2

或者选择所有没有 first by DataFrame.ilocbefore的列cumsum

df.iloc[:, 1:] = df.iloc[:, 1:].cumsum(axis=1)
print (df)
         Country  2020-01-01  2020-01-02  2020-01-03
0  United States           0           1           1
1          China           2           2           5
2          Italy           1           2           4
3          spain           0           2           2

推荐阅读