如何通过使用另一个数据框的滚动 COLUMN total/sum 创建一个新的数据框?
How can I create a new dataframe by taking the rolling COLUMN total/sum of another dataframe?
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 列的总和。
我找不到类似的 question/answer/example。
我将不胜感激任何帮助。
您可以滚动 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
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 列的总和。
我找不到类似的 question/answer/example。 我将不胜感激任何帮助。
您可以滚动 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