猿问

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

这是我所拥有的:


data = np.array([np.arange(1000)]*2).T


df = pd.DataFrame(data,columns=['a','b'])




    a   b

0   0   0

1   1   1

2   2   2

3   3   3

4   4   4

... ... ...

995 995 995

996 996 996

997 997 997

998 998 998

999 999 999

这是我想要做的:


对于 column a,取前 100 行,在每一行后添加一个逗号,将它们添加为自己的一行。取接下来的 100 行。继续直到你用尽列中的点。对列重复b


覆盖现有列或创建新列都没有关系。


这是我试图让它看起来像的:


       c                   d

0,1,2,3,4,5...99    0,1,2,3,4,5...99

101, 102, 103,...   101, 102, 103,...


慕斯王
浏览 258回答 1
1回答

慕盖茨4494581

你可以这样做: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                    c0      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...
随时随地看视频慕课网APP

相关分类

Python
我要回答