df = pd.read_csv('somefile.csv')
...给出一个错误:
熊猫…/网站/ / io / parsers.py: 1130: DtypeWarning:列(4,5,7,16)为混合类型。指定dtype 选项导入或设置low_memory=False。
为什么dtype选项与low_memory相关,为什么low_memory=False帮助?
df = pd.read_csv('somefile.csv')
...给出一个错误:
熊猫…/网站/ / io / parsers.py: 1130: DtypeWarning:列(4,5,7,16)为混合类型。指定dtype 选项导入或设置low_memory=False。
为什么dtype选项与low_memory相关,为什么low_memory=False帮助?
当前回答
我在一个~400MB的文件中遇到了类似的问题。设置low_memory=False对我有用。首先做一些简单的事情,我会检查你的数据帧是否比你的系统内存大,重新启动,在继续之前清理RAM。如果你仍然遇到错误,请确保你的.csv文件是正确的,在Excel中快速查看并确保没有明显的损坏。损坏的原始数据会造成严重破坏。
其他回答
这对我很管用!
dashboard_df = pd.read_csv(p_file, sep=';', error_bad_lines=False, index_col=False, dtype='unicode')
这对我很管用!
file = pd.read_csv('example.csv', engine='python')
有时候,当其他方法都失败时,你只想告诉熊猫闭嘴:
# Ignore DtypeWarnings from pandas' read_csv
warnings.filterwarnings('ignore', message="^Columns.*")
根据Jerald Achaibar给出的答案,我们可以检测混合Dytpes警告,并且只在警告发生时使用较慢的python引擎:
import warnings
# Force mixed datatype warning to be a python error so we can catch it and reattempt the
# load using the slower python engine
warnings.simplefilter('error', pandas.errors.DtypeWarning)
try:
df = pandas.read_csv(path, sep=sep, encoding=encoding)
except pandas.errors.DtypeWarning:
df = pandas.read_csv(path, sep=sep, encoding=encoding, engine="python")
我在一个~400MB的文件中遇到了类似的问题。设置low_memory=False对我有用。首先做一些简单的事情,我会检查你的数据帧是否比你的系统内存大,重新启动,在继续之前清理RAM。如果你仍然遇到错误,请确保你的.csv文件是正确的,在Excel中快速查看并确保没有明显的损坏。损坏的原始数据会造成严重破坏。