簡體   English   中英

Pandas改造真慢

[英]Pandas transformation really slow

我一直在嘗試將 python pandas 從一種表示轉換為另一種表示,但速度真的很慢:

我目前的 dataframe 是這樣的:

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插入一個新的 dataframe 但真的很慢。 第 1,2 列不是固定的,但我有一個包含所有名稱的集合。

IIUC,你可以使用melt

通常在 pandas 中不鼓勵循環,除非沒有其他選擇或者您有合理的用例。

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',...})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM