我有:
pd.DataFrame({'col':['one','fish','two','fish','left','foot','right','foot']})
col
0 one
1 fish
2 two
3 fish
4 left
5 foot
6 right
7 foot
我想将每n行(这里每4行)连接起来,并形成一个新的数据框:
pd.DataFrame({'col':['one fish two fish','left foot right foot']})
col
0 one fish two fish
1 left foot right foot
我正在使用pyhton和熊猫
答案 0 :(得分:3)
如果存在默认值RangeIndex
,则对整数join
使用整数除法:
print (df.groupby(df.index // 4).agg(' '.join))
#for not RangeIndex create helper array
#print (df.groupby(np.arange(len(df)) // 4).agg(' '.join))
col
0 one fish two fish
1 left foot right foot
如果要指定列col
:
print (df.groupby(df.index // 4)['col'].agg(' '.join).to_frame())
答案 1 :(得分:0)
尝试groupby
:
df['col'].groupby(np.repeat(np.arange(len(df)), 4)[:len(df)]).agg(' '.join)
输出:
0 one fish two fish
1 left foot right foot
Name: col, dtype: object