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帮助?
当前回答
它为我工作与low_memory = False同时导入一个数据帧。这就是所有对我有效的改变:
df = pd.read_csv('export4_16.csv',low_memory=False)
其他回答
有时候,当其他方法都失败时,你只想告诉熊猫闭嘴:
# Ignore DtypeWarnings from pandas' read_csv
warnings.filterwarnings('ignore', message="^Columns.*")
df = pd.read_csv('somefile.csv', low_memory=False)
这应该能解决问题。当从CSV中读取1.8M行时,我得到了完全相同的错误。
正如fireynx前面提到的,如果显式指定了dtype,并且存在与该dtype不兼容的混合数据,则加载将崩溃。我使用了这样的转换器作为变通方法来更改数据类型不兼容的值,这样数据仍然可以加载。
def conv(val):
if not val:
return 0
try:
return np.float64(val)
except:
return np.float64(0)
df = pd.read_csv(csv_file,converters={'COL_A':conv,'COL_B':conv})
Try:
dashboard_df = pd.read_csv(p_file, sep=',', error_bad_lines=False, index_col=False, dtype='unicode')
根据熊猫的文件:
dtype:列的类型名称或字典->类型
至于low_memory,默认为True,还没有文档。但我认为这无关紧要。错误消息是通用的,所以无论如何您都不需要处理low_memory。希望这对你有所帮助,如果你还有其他问题,请告诉我
这对我很管用!
dashboard_df = pd.read_csv(p_file, sep=';', error_bad_lines=False, index_col=False, dtype='unicode')