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()