我有一个.csv标签,有四个不同的类别。
现在我的.csv文件看起来是这样的:
id型
1 1
2 2
3 3
4 4
5 2
我想把它转换成类似的:
id类型1类型2类型3类型4
1 1 0 0
2 0 1 0
3 0 0 1 0
4 0 0 0 1
5 0 1 0 0
我如何通过python完成这些操作?我使用pd.read_csv((
如果您的csv文件(此处命名为file.csv
(看起来像
id,type
1,1
2,2
3,3
4,4
5,2
那么你可以用.str.get_dummies()
来做
df = (
pd.read_csv("file.csv", index_col=0)
.type.astype(str).str.get_dummies().rename(lambda c: f"type{c}", axis=1)
)
以获得以下数据帧
type1 type2 type3 type4
id
1 1 0 0 0
2 0 1 0 0
3 0 0 1 0
4 0 0 0 1
5 0 1 0 0
如果你想把它写回一个新的csv文件,那么
df.to_csv("file_new.csv", index=True)
生成以下文件file_new.csv
:
id,type1,type2,type3,type4
1,1,0,0,0
2,0,1,0,0
3,0,0,1,0
4,0,0,0,1
5,0,1,0,0