Python 将行值转换为列,如果行中的值与否,则转换为1或0

Python 将行值转换为列,如果行中的值与否,则转换为1或0,python,pandas,dataframe,Python,Pandas,Dataframe,我对如何处理这个问题有点困惑,因为我对熊猫还不熟悉 我有一个数据框,看起来像这样: Col1 Col2 Val1 100 Val2 150 Val3 200 我想要的是这个 Val1 Val2 Val3 Col2 1 0 0 100 0 1 0 150 0 0 1 200 因此,如果该行中存在该值,则在其新列中应为1。使用get\u dummies 或者 我认为最好的方法是将数字转换成字符串,然后循环遍历,检查每个字符是否为“0”。我现在

我对如何处理这个问题有点困惑,因为我对熊猫还不熟悉

我有一个数据框,看起来像这样:

Col1 Col2
Val1 100
Val2 150
Val3 200
我想要的是这个

Val1 Val2 Val3 Col2
1    0    0    100
0    1    0    150
0    0    1    200
因此,如果该行中存在该值,则在其新列中应为1。

使用get\u dummies

或者


我认为最好的方法是将数字转换成字符串,然后循环遍历,检查每个字符是否为“0”。我现在必须运行,但今天晚些时候我会用代码编辑这篇文章。使用交叉表进行sry


提醒您添加您承诺的代码,否则这不是一个真正高质量的答案
In [5696]: pd.get_dummies(df, prefix='', prefix_sep='')
Out[5696]:
   Col2  Val1  Val2  Val3
0   100     1     0     0
1   150     0     1     0
2   200     0     0     1
In [5701]: df.Col1.str.get_dummies().join(df['Col2']) 
           # or df[['Col2']].join(df.Col1.str.get_dummies())
Out[5701]:
   Val1  Val2  Val3  Col2
0     1     0     0   100
1     0     1     0   150
2     0     0     1   200
pd.crosstab(df.col2,df.col1).reset_index()