试图回答这个问题“获取每列的唯一字符串列表”,我们遇到了与我的数据集不同的问题。当我将此 CSV 文件导入数据帧时,每列都是 OBJECT 类型,我们需要将数字列转换为实数(数字)数据类型,将非数字列转换为字符串数据类型。
有办法实现这一点吗?
我尝试过以下文章Pandas:更改列的数据类型中的代码,但没有成功。
df = pd.DataFrame(a, columns=['col1','col2','col3'])
Run Code Online (Sandbox Code Playgroud)
一如既往地感谢您的帮助
选项1
用于pd.to_numericapply
df.apply(pd.to_numeric, errors='ignore')
Run Code Online (Sandbox Code Playgroud)
选项 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)
Run Code Online (Sandbox Code Playgroud)
注意:
这些并不完全相同。对于某些包含混合值的列,选项 2 会尽可能转换,而选项 2 会将该列中的所有内容保留为对象。看了你的文件,我会选择选项1。
定时
df = pd.read_csv('HistorianDataSample/HistorianDataSample.csv', skiprows=[1, 2])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5822 次 |
| 最近记录: |