为了账号安全,请及时绑定邮箱和手机立即绑定

将 Pandas 中每第 n 个值的列转换为行并用逗号连接

将 Pandas 中每第 n 个值的列转换为行并用逗号连接

慕斯王 2021-08-24 17:00:40
这是我所拥有的:data = np.array([np.arange(1000)]*2).Tdf = pd.DataFrame(data,columns=['a','b'])    a   b0   0   01   1   12   2   23   3   34   4   4... ... ...995 995 995996 996 996997 997 997998 998 998999 999 999这是我想要做的:对于 column a,取前 100 行,在每一行后添加一个逗号,将它们添加为自己的一行。取接下来的 100 行。继续直到你用尽列中的点。对列重复b覆盖现有列或创建新列都没有关系。这是我试图让它看起来像的:       c                   d0,1,2,3,4,5...99    0,1,2,3,4,5...99101, 102, 103,...   101, 102, 103,...
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

你可以这样做:


df = df.assign(cut=pd.cut(x=df.a, bins = np.arange(0, len(data)+2, 100)))

而a你可以这样做:


df['c'] = df.groupby('cut')['a'].transform(lambda x:  ','.join(map(str, x.values.tolist())))

df.drop('cut', axis = 1)


       a    b                    c

0      1    1  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1...

1      2    2  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1...

2      3    3  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1...

3      4    4  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1...

4      5    5  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1...


查看完整回答
反对 回复 2021-08-24
  • 1 回答
  • 0 关注
  • 257 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信