如何插入熊猫的每一秒?

7du*_*uck 3 python dataframe pandas

基本上,我有一个DataFrame看起来像这样的:

  c1 c2 
0  a  b  
1  c  d  
2  e  f  
3  g  h  
Run Code Online (Sandbox Code Playgroud)

我需要将它转换为这个:

  c1 
0  a   
1  b   
2  c   
3  d
4  e
...
Run Code Online (Sandbox Code Playgroud)

我知道如何从第二列获取所有值:

second_col_items = [df[['1']].iloc[i].item() for i in range(0,len(df.index))] 
Run Code Online (Sandbox Code Playgroud)

但我坚持插入.我需要在循环中插入行,而且,我需要在现有行之间插入新行.它甚至可能吗?

所以,我的问题是:如何遍历列表(second_col_items在我的情况下)并将其值插入每个第二行DataFrame?提前致谢!

Max*_*axU 5

你可以使用stack()方法:

来源DF

In [2]: df
Out[2]:
  c1 c2
0  a  b
1  c  d
2  e  f
3  g  h
Run Code Online (Sandbox Code Playgroud)

堆叠

In [3]: df.stack()
Out[3]:
0  c1    a
   c2    b
1  c1    c
   c2    d
2  c1    e
   c2    f
3  c1    g
   c2    h
dtype: object
Run Code Online (Sandbox Code Playgroud)

stacked + reset_index

In [4]: df.stack().reset_index(drop=True)
Out[4]:
0    a
1    b
2    c
3    d
4    e
5    f
6    g
7    h
dtype: object

In [5]:
Run Code Online (Sandbox Code Playgroud)


piR*_*red 5

您可以使用ravel或放松flatten。两者都是numpy可以应用valuesapd.DataFrame或的属性的方法pd.Series

解决方案

pd.Series(df.values.ravel(), name='c1')

0    a
1    b
2    c
3    d
4    e
5    f
6    g
7    h
Name: c1, dtype: object
Run Code Online (Sandbox Code Playgroud)

或者

pd.DataFrame(dict(c1=df.values.ravel())

  c1
0  a
1  b
2  c
3  d
4  e
5  f
6  g
7  h
Run Code Online (Sandbox Code Playgroud)

幼稚时间测试

在此输入图像描述