【问题标题】:How can I create a new dataframe by taking the rolling COLUMN total/sum of another dataframe?如何通过获取另一个数据框的滚动 COLUMN 总计/总和来创建新的数据框?
【发布时间】:2020-09-09 22:31:21
【问题描述】:
import pandas as pd
df = {'a': [1,1,1], 'b': [2,2,2], 'c': [3,3,3], 'd': [4,4,4], 'e': [5,5,5], 'f': [6,6,6], 'g': [7,7,7]}
df1 = pd.DataFrame(df, columns = ['a', 'b', 'c', 'd', 'e', 'f', 'g'])
dg = {'h': [10,10,10], 'i': [14,14,14], 'j': [18,18,18], 'k': [22,22,22]}
df2 = pd.DataFrame(dg, columns = ['h', 'i', 'j', 'k'])

df1

    a   b   c   d   e   f   g
0   1   2   3   4   5   6   7
1   1   2   3   4   5   6   7
2   1   2   3   4   5   6   7

df1 是我的原始数据框。我想通过添加每个连续的 4 列(滚动列总和)来创建另一个数据框。

df2

    h   i   j   k
0   10  14  18  22
1   10  14  18  22
2   10  14  18  22

df2 是添加 df1 的 4 个连续列后的结果数据帧。

例如:df2中的h列是df1中a、b、c、d列的总和; df2 中的 i 列是 df1 中 b、c、d、e 列的总和; df2 中的 j 列是 df1 中 c、d、e、f 列的总和; df2中的k列是df1中d、e、f、g列的总和。

我找不到任何类似的问题/答案/示例。 我将不胜感激任何帮助。

【问题讨论】:

    标签: python-3.x pandas dataframe rolling-sum


    【解决方案1】:

    您可以使用滚动 4 列并求和。最后删除前 3 列。

    df1.rolling(4, axis=1).sum().dropna(axis=1)
    
        d       e       f       g
    0   10.0    14.0    18.0    22.0
    1   10.0    14.0    18.0    22.0
    2   10.0    14.0    18.0    22.0
    

    【讨论】:

    • 艾伦,感谢您及时准确的回答。非常感谢。
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 2022-12-06
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    相关资源
    最近更新 更多