pandas:获取第二行并将其放在第一行的末尾(并自动创建新列)

2024-04-27 20:22:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含多行条目和3列条目的数据框。现在我想把每第二行加在上面一行。因此,首先我应该创建3个附加列,这样我总共有6个列。但是行附加是如何工作的呢?你知道吗

Problem

baselist=[]
for x in range(len(df)):
    if (x % 2) == 0:
        newdf = df.iloc[x].append(df.iloc[x+1])
        baselist.append(newdf)

有了这个代码片段,我实际上可以得到一个列表列表(baselist)和所需的解决方案,但是我不能用它来做df,因为它有两个列名。有更好的解决办法吗?你知道吗


Tags: 数据in目的df列表forlenif
2条回答

所以我们可以用groupby

pd.DataFrame([y.values.ravel() for x , y in df.groupby(np.arange(len(df))//2)])
    0   1   2   3   4   5
0  ab  bc  cd  dd  ac  cc
1  aa  cx  yd  dg  as  cs

如果需要指定格式的文件,可以执行以下操作:

df = df.join(df.shift(-1).add_prefix('x_'))
df[1::2] = ''
print(df)

   c1  c2  c3 x_c1 x_c2 x_c3
0  ab  bc  cd   dd   ac   cc
1                           
2  aa  cx  yd   dg   as   cs
3                     

相关问题 更多 >