【问题标题】:MySQL load data in file - replace specific value with null for all columnsMySQL 在文件中加载数据 - 将所有列的特定值替换为 null
【发布时间】:2018-07-05 07:45:48
【问题描述】:
我正在尝试使用 MySQL load data infile 语句来导入大型 csv 文件。我有一个问题——当客户向我们提供这些数据时,他们使用了缺失值的自定义指标——它们被指示为@NA。现在,对于所有带有文本的字段,我将其设为 @NA,对于所有整数或浮点变量,我将其设为 0 而不是 NULL。我想知道当我为我尝试导入的每个字段上传文件时,是否有一种方法可以指示自定义 NULL 占位符?
【问题讨论】:
标签:
mysql
null
load-data-infile
【解决方案1】:
似乎没有办法使用内置的 MySQL load data infile 函数来做到这一点。
我不得不通过 Python Pandas 提出解决方案 - 它很好地支持自定义 NULL 值。
df = pd.read_csv(r"file.csv", sep=",", na_values = "@NA")
df.to_sql(name='table', con=engine,if_exists = 'append', index = False, chunksize=100000)