[英]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.