首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pandas中每4行添加值

在pandas中每4行添加值
EN

Stack Overflow用户
提问于 2019-11-05 15:50:33
回答 1查看 69关注 0票数 2

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

代码语言:javascript
复制
   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

+),我想要的结果是

代码语言:javascript
复制
19
15
12
14
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-05 15:53:37

使用:

代码语言:javascript
复制
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

对于整数,可以将missing或None值替换为0

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58706738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档