在熊猫中每4行添加值

我使用了“ pandas.read_csv”,数据如下所示

   A     B      C       D
00  2019-2  315993352  7           78
01  2019-1  317515869  3           69
02  2018-4  318533054  4           66
03  2018-3  318769547  5           65
04  2018-2  319952126  6           69
05  2018-1  322476579  None        70
06  2017-4  323018027  5           63
07  2017-3  321828003  4           58
08  2017-2  321337443  3           52
09  2017-1  322300905  4           46
10  2016-4  321747881  3           45
11  2016-3  324384755  2           44
12  2016-2  456366381  5           50
13  2016-1  453014579  3           70
14  2015-4  452271967  4           115
15  2015-3  452000000  2           59
16  2015-2  453243847  None      59
17  2015-1  321738470  1           62

它有18行。 我想每4行添加C列的值并制作新的数据框: row0 + row1 + row2 + row3(7 + 3 + 4 + 5)row4 + row5 + row6 + row7(6 + 0 + 5 + 4)row8 + row9 + row10 + row11(3 + 4 + 3 + 2)row12 + row13 + row14 + row15(5 + 3 + 4 + 2)

并且18不能除以4 所以我想扔row16,row17

+)我想要的结果是

19
15
12
14
tiamo520 回答:在熊猫中每4行添加值

使用:

N = 4

#first remove last rows if remainders
df = df.iloc[:len(df) // N * N]
#convert to numeric
df['C'] = pd.to_numeric(df['C'],errors='coerce')
#aggregate sum 
df = df.groupby(np.arange(len(df)) // N)['C'].sum().to_frame()
print (df)
      C
0  19.0
1  15.0
2  12.0
3  14.0

对于整数,可以将丢失或无值替换为0

N = 4

df = df.iloc[:len(df) // N * N]

df['C'] = pd.to_numeric(df['C'],errors='coerce').fillna(0).astype(int)

df = df.groupby(np.arange(len(df)) // N)['C'].sum().to_frame()
print (df)
    C
0  19
1  15
2  12
3  14
本文链接:https://www.f2er.com/3161436.html

大家都在问