我使用了“ pandas.read_csv”,数据如下
A B C D
00 2019-2 3 7 7
01 2019-1 3 3 6
02 2018-4 3 4 6
03 2018-3 3 5 6
04 2018-2 3 6 None
05 2018-1 3 None 7
06 2017-4 3 5 6
07 2017-3 3 4 5
08 2017-2 3 3 5
09 2017-1 3 4 5
10 2016-4 3 3 4
11 2016-3 3 2 4
12 2016-2 4 5 5
13 2016-1 4 3 7
14 2015-4 4 4 11
15 2015-3 4 2 5
16 2015-2 4 None 5
17 2015-1 3 1 None
如何将每4行的第一个数据提取到一个新的数据框中?它有18行。18不能除以4,所以我想抛出row16,row17
我想要的结果是这样的
A B C D
00 2019-2 3 7 7
04 2018-2 3 6 0
08 2017-2 3 3 5
12 2016-2 4 5 5
我只是试过
N = 4
#first remove last rows if remainders
df = df.iloc[:len(df) // N * N]
#convert to numeric
df['A'] = pd.to_numeric(df['C'], errors='coerce').fillna(0)
df['B'] = pd.to_numeric(df['C'], errors='coerce').fillna(0)
df['C'] = pd.to_numeric(df['C'], errors='coerce').fillna(0)
df['D'] = pd.to_numeric(df['C'], errors='coerce').fillna(0)
IIUC我们可以先切割df groupby
n=(len(df)//4)*4
df=df.iloc[:n, :].groupby(np.arange(n) // 4).head(1).replace('None',0)
Out[13]:
A B C D
0 2019-2 3 7 7
4 2018-2 3 6 0
8 2017-2 3 3 5
12 2016-2 4 5 5
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句