熊猫的转型真的很慢

时间:2020-04-09 00:22:47

标签: python pandas dataframe

我一直在尝试将python大熊猫从一种表示形式转换为另一种表示形式,但是速度很慢:

我当前的数据框如下:

Column0, Column 1, Column 2, Column 3, Column 10... 
   p1        1           2         8          3
   p2        2           4         9          6

Column0,   sample,       Exp
   p1       Column 1      1 
   p1       Column 2      2
   p1       Column 3      8
   p1       Column 10     3
   p2       Column 1      2 
   .           .          .
   .           .          . 

我使用iterrows插入到新的数据框中,但速度确实很慢。第1,2列不是固定的,但我有一个包含所有名称的集合。

1 个答案:

答案 0 :(得分:3)

IIUC,您可以使用melt

除非没有其他选择或您有合理的用例,否则通常不建议在熊猫中循环播放。

d = """Column0, Column 1, Column 2, Column 3, Column 10 
   p1,        1,           2,         8,          3
   p2,        2,           4,         9,          6"""


from io import StringIO

df = pd.read_csv(StringIO(d),sep=',')

df2 = pd.melt(df,id_vars=['Column0'],var_name='Sample',value_name='Exp')

print(df2)

  Column0       Sample  Exp
0      p1     Column 1    1
1      p2     Column 1    2
2      p1     Column 2    2
3      p2     Column 2    4
4      p1     Column 3    8
5      p2     Column 3    9
6      p1   Column 10     3
7      p2   Column 10     6

连锁经营

pd.melt(df,id_vars=['Column0'],var_name='Sample',value_name='Exp').rename(
             columns = {'Column0' : 'NewCol',...})
相关问题