【问题标题】:Pandas/Python/Dropna: Renaming header column names after a dropna takes place with intention to import to MySQLPandas/Python/Dropna:在 dropna 发生后重命名标题列名称以导入 MySQL
【发布时间】:2018-07-14 14:34:16
【问题描述】:

使用下面的代码,我已成功删除了 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?

提前谢谢你。

【问题讨论】:

    标签: python mysql python-3.x pandas sqlalchemy


    【解决方案1】:

    在创建新的 csv 之前,请执行此操作

    new_df = data.dropna().rename(columns={'oldcol1': 'newcol1', 'oldcol2': 'newcol2})
    

    columns 参数是一个字典,其键和值分别作为旧列名和新列名。

    【讨论】:

    • 感谢您的成功,您的代码有一个小错误,在 newcol2 之后将方括号 ] 替换为 '。出于好奇,有没有更有效的方法来做到这一点?我意识到我的新命名列必须手动输入,但是原来的列呢?
    • 虽然不完全确定是否最有效,但我使用 list 回答了我自己的次要问题: new_df = data.dropna().rename(columns={list(data)[0]: 'newcol1,列表(数据)[1]:'newcol2',列表(数据)[2]:'newcol3'})
    • dataframe.rename 是重命名列的标准方式。如果您想避免手动输入新名称,则必须以编程方式从其他来源收集这些名称。你从哪里得到新的列名?
    • 你没有完成你的评论,我错误地投了赞成票 :)
    • 现在要替换 newcol1、2、3 等...我创建了自己的与变量 col 相关的列表,并列出了我想要的所有 33 个新列名并替换了手动输入的列通过相同的方式调用 col 变量中的名称。
    猜你喜欢
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2020-05-10
    • 2019-08-13
    • 1970-01-01
    • 2015-11-19
    • 2016-03-21
    相关资源
    最近更新 更多