python - Pandas/Python/Dropna:在 dropna 发生后重命名标题列名称以导入 MySQL
问题描述
使用下面的代码,我已成功删除了 CSV 文件中值可能为空白的行,该文件由 33 列组成。
import pandas as pd
from sqlalchemy import create_engine
data = pd.read_csv('TestCSV.csv', sep=',')
data.dropna()
data.dropna().to_csv('CleanCSV.csv', index=False)
现在,目的是将文件中的 33 个标题列重命名为我自己的,然后使用以下代码将新的(带有新命名的标题)的内容导入我的 MySQL 数据库,其中缺少重命名标题:
data = pd.read_csv('CleanCSV.csv', sep=',')
cnx = create_engine('mysql+pymysql://root:password@localhost:3306/schema', echo=False)
data.to_sql(name='t_database', con=cnx, if_exists='append', index=False)
我已经稍微阅读了 DataFrames,但是当内容在 CSV 文件中时,这个选项仍然有效吗?如果是这样,我如何将新 dropna 的内容分配给 DataFrame 并从那里重命名列的标题,然后我打算导入 MySQL?
先感谢您。
解决方案
在创建新的 csv 之前,请执行此操作
new_df = data.dropna().rename(columns={'oldcol1': 'newcol1', 'oldcol2': 'newcol2})
参数是一个字典,columns
键和值分别作为旧列名和新列名。