Обновлено сообщение:
Ах, хорошо.Я думаю, я понимаю, что вы говорите.Может быть, попробовать что-то вроде этого:
df1 = pd.DataFrame({ "ID":[1,2,3], "ch1":[0,-1,0], "ch2":[0,0,0], "ch3":[-1,0,1] })
new_df = pd.DataFrame()
min_ch = 1
max_ch = 3
for i in range(min_ch,max_ch+1):
this_ch_str = "ch"+str(i)
temp_df = df1[["ID",this_ch_str]].copy()
temp_df["CH"] = i
temp_df = temp_df.rename(columns={this_ch_str:"val"})
temp_df = temp_df[["CH","ID","val"]]
new_df = new_df.append(temp_df)
Это немного запутанно, но это делает работу.
Исходное сообщение:
Iдумаю, что функция слияния может быть то, что вы ищете.
Вот краткий пример:
import pandas as pd
df1 = pd.DataFrame({"ID":[1,2,3,4,5],"col1":["A","B","C","D","E"]})
df2 = pd.DataFrame({"ID":[1,2,3,4,5,6,7,8,9,10],"col2":["x","y","z","x","y","z","x","y","z","x"]})
df3 = pd.merge(left=df1,right=df2,on="ID",how="left")
Результат, сохраненный в df3, будет выглядеть так:
ID col1 col2
0 1 A x
1 2 B y
2 3 C z
3 4 D x
4 5 E y
Надеюсь, это то, что вы искали!