替换None为NULL或空白的VARCHAR和0或空白的INT字段从pandas数据框架



我正在尝试从数据库中获取数据,将它们放在数据框架中并将它们加载到AWS S3。

对于包含None值的字段,这些值将作为None加载到S3。我希望VARCHAR字段中的None为NULL或空白,INT字段中的None为0或空白。

connection = pyodbc.connect(conn)
sql = 'SELECT id, name from table_a'
df = pd.read_sql_query(sql, connection)
df=df.applymap(str) 
csv_buffer = BytesIO()
s3 = boto3.resource('s3')
with gzip.GzipFile(mode='w', fileobj=csv_buffer) as zipped_file:
df.to_csv(TextIOWrapper(zipped_file, 'utf8'), index=False)
s3.Object(bucket[env],dest_filename).put(Body=csv_buffer.getvalue())

我在print(df)时得到的输出是-

<表类>ID名称tbody><<tr>1没有约翰

要在python中简单地将None的值更改为空值,可以尝试:

for col in df.columns:
df[col] = df[col].fillna(str())

int()也可以代替str(),或者空引号:"

相关内容

  • 没有找到相关文章

最新更新