尝试回答此问题Get List of Unique String per Column我们遇到了与数据集不同的问题。当我将此CSV文件导入数据框时,每列都是OBJECT类型,我们需要将只有数字的列转换为实数(数字)dtype,将那些不是数字的列转换为字符串dtype。
有没有办法实现这个目标?
Download the data sample from here
我尝试过以下文章Pandas: change data type of columns中的代码,但没有效果。
df = pd.DataFrame(a, columns=['col1','col2','col3'])
一如既往地感谢您的帮助
答案 0 :(得分:1)
选项1
在pd.to_numeric
apply
df.apply(pd.to_numeric, errors='ignore')
选项2
在pd.to_numeric
df.values.ravel
cvrtd = pd.to_numeric(df.values.ravel(), errors='coerce').reshape(-1, len(df.columns))
pd.DataFrame(np.where(np.isnan(cvrtd), df.values, cvrtd), df.index, df.columns)
<强> 注意 强>
这些并不完全相同。对于包含混合值的某些列,选项2会转换它可以执行的操作,而选项2会将该列中的所有内容都保留为对象。查看您的文件,我会选择选项1。
时间
df = pd.read_csv('HistorianDataSample/HistorianDataSample.csv', skiprows=[1, 2])