试图回答这个问题获取每列的唯一字符串列表 https://stackoverflow.com/questions/39647978/get-list-of-unique-string-values-per-column-in-a-dataframe-using-python我们遇到了与我的数据集不同的问题。当我将此 CSV 文件导入数据帧时,每列都是 OBJECT 类型,我们需要将数字列转换为实数(数字)数据类型,将非数字列转换为字符串数据类型。
有办法实现这一点吗?
从这里下载数据样本 https://www.dropbox.com/s/thtxso04c1y13xl/HistorianDataSample.zip?dl=0
我尝试过以下文章中的代码Pandas:更改列的数据类型 https://stackoverflow.com/questions/15891038/pandas-change-data-type-of-columns但没有用。
df = pd.DataFrame(a, columns=['col1','col2','col3'])
一如既往地感谢您的帮助
Option 1
use pd.to_numeric
in an apply
df.apply(pd.to_numeric, errors='ignore')
Option 2
use pd.to_numeric
on 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)
Note
这些并不完全相同。对于某些包含混合值的列,选项 2 会尽可能转换,而选项 2 会将该列中的所有内容保留为对象。看了你的文件,我会选择选项1。
Timing
df = pd.read_csv('HistorianDataSample/HistorianDataSample.csv', skiprows=[1, 2])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)