将每n行连接成一排熊猫

时间:2019-11-05 14:35:07

标签: pandas concatenation

我有:

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和熊猫

2 个答案:

答案 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