【发布时间】:2020-11-25 16:16:00
【问题描述】:
我对熊猫还很陌生。我正在从文件夹中读取 sql 文件列表,然后使用 df.to_csv 将输出写入文本文件,然后使用这些文件使用 COPY 命令上传到 redshift。 我遇到的一个问题是一些布尔列(1,0)正在转换为 True/False,这是我不想要的,因为 Redshift 副本会引发错误。 这是我的代码
for filename in glob.glob('*.sql'):
with open(filename, 'r') as f:
df = pd.read_sql_query(f.read(),conn)
df['source_file_name'] = output_file_name
df.to_csv(output_file, sep='\t', index=False, float_format="%.11g")
f.close()
我不想将逻辑中的特定列名提供给 .astype(int),因为我正在处理大约 100 个具有不同输出列和不同数据类型的文件。 df *1 也不起作用,因为它给出了日期时间列的错误。有解决方案吗?我什至可以在 df.to_csv 进行操作。
【问题讨论】:
-
所以你只遇到布尔列的问题?那是对的吗?要将 True 和 False 分别转换为 1 和 0?
-
@Gusto,是的,这正是我想要的。
标签: python pandas amazon-redshift