我的数据在数据框中。它看起来像这样。
我正在尝试将数据框转换为以下格式:
目前我正在使用以下Python代码进行此转换,这些代码很繁琐。
def f(row):
if row['d1'] == 1:
return 1
if row['d1'] == 2:
return ''
if row['d1'] == 3:
return ''
if row['d1'] == 4:
return ''
else:
return ''
return np.nan
df['t1']=df.apply(f, axis=1)
非常感谢任何帮助。
答案 0 :(得分:4)
您可以应用以下功能:
def func(x):
x.iloc[x.iloc[0]] = 1
return x
In [66]: df
Out[66]:
d1 t1 t2 t3 t4 t5
0 5 0 0 0 0 0
1 1 0 0 0 0 0
2 3 0 0 0 0 0
3 4 0 0 0 0 0
4 1 0 0 0 0 0
5 2 0 0 0 0 0
In [67]: df.apply(func, axis=1)
Out[67]:
d1 t1 t2 t3 t4 t5
0 5 0 0 0 0 1
1 1 1 0 0 0 0
2 3 0 0 1 0 0
3 4 0 0 0 1 0
4 1 1 0 0 0 0
5 2 0 1 0 0 0