将数据框的切片添加到新列中的另一个数据框

Adr*_*ian 1 python dataframe python-3.x pandas

我有2个数据框。一个是空的,另一个是很多行。我想将数据框与值分组,然后切片每组的前3行,并将其添加到空数据框。我希望将每3个新行放入一个新列中。

我已经尝试过,concat,加入,追加..但我不知道如何...

到目前为止,我的代码:

df = pd.Dataframe()
df2 = pd.DataFrame({'C': [20, 20, 20, 20, 10, 10, 10, 30, 30, 30],
                   'D': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]})

df_dictionary = df2.groupby("C")

for key, df_values in df_dictionary:
    df_values = df_values.head(3)
    df = pd.concat(df, df_values["D"], axis=1)
    print(df)
Run Code Online (Sandbox Code Playgroud)

结果看起来像是空白数据框:

index   col 1   col 2   col 3
0   1   5   8
1   2   6   9
2   3   7   10
Run Code Online (Sandbox Code Playgroud)

我想将每个组的D列中的前3个值添加到空数据框中,并每次将它们放在新列中。

有人有建议吗?

WeN*_*Ben 5

cumcount以前用过pivot

n=3 
df2.assign(key=df2.groupby('C').cumcount()).pivot(index='key',columns='C',values='D').iloc[:n,:]
Out[730]: 
C     10   20    30
key                
0    5.0  1.0   8.0
1    6.0  2.0   9.0
2    7.0  3.0  10.0
Run Code Online (Sandbox Code Playgroud)