我有一个CSV文件,我想应用一种热编码,然后将新的数据框(数据集)另存为新的CSV文件。但是,保存新文件时,它仅写入5行虚拟变量和原始数据集的所有行!
我只想将所有行和列保存在新的file.csv中,数据集的最终形状为(237124, 417)
。
我的代码包含:
import numpy as np
import pandas as pd
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder
import csv
dataset=pd.read_csv("C:/Users/User/Desktop/data.csv",encoding='cp1252')
dataset.shape
#output: (237124, 37)
dummies = pd.get_dummies(dataset, columns=["name","mark",....... ]).head()
dummies.shape
#output : (5, 380)
dataset = pd.concat([dataset, dummies], axis=1)
dataset.shape
#output: (237124, 417)
# i want this shape(original+dummies)
dataset.to_csv('OneHotEncodnig.csv', index=False)
答案 0 :(得分:1)
您在此行呼叫df.head()
:
dummies = pd.get_dummies(dataset, columns=["name","mark",....... ]).head()
这就是为什么您仅获得5条虚拟行的原因。删除.head()
,您将获得所有行。
答案 1 :(得分:1)
head()
函数默认将仅返回5行。请应用没有get_dummies()
功能的head()
import numpy as np
import pandas as pd
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder
import csv
dataset=pd.read_csv("C:/Users/User/Desktop/data.csv",encoding='cp1252')
dataset.shape
#output: (237124, 37)
dummies = pd.get_dummies(dataset, columns=["name","mark",....... ])
dummies.shape
#output : (5, 380)
dataset = pd.concat([dataset, dummies], axis=1)
dataset.shape
#output: (237124, 417)
# i want this shape(original+dummies)
dataset.to_csv('OneHotEncodnig.csv', index=False)