Python中使用Pandas进行数据导入和导出

目录

  • Pandas 常用数据导入
  • Pandas 常用数据导出
  • 数据导入示例
  • CSV 文件:
  • 指定导入文件的编码格式
  • 添加列标题
  • Excel 文件:
  • JSON 文件:
  • 数据库:
  • HTML 表格:
  • Clipboard:
  • HDF5 文件:
  • Feather 文件:
  • Parquet 文件:
  • Msgpack 文件:
  • 数据导出示例
  • CSV 文件:
  • Excel 文件:
  • JSON 文件:
  • 数据库:
  • HTML 表格:
  • Clipboard:
  • HDF5 文件:
  • Feather 文件:
  • Parquet 文件:
  • Msgpack 文件:
  • 总结
  • Pandas 是 Python 中用于数据处理和分析的强大库,提供了丰富的功能来导入、处理和导出数据。本教程将介绍如何使用 Pandas 导入和导出数据,以及一些常见的数据处理技巧。

    Pandas 常用数据导入

    1. CSV 文件:使用 pd.read_csv() 导入逗号分隔值文件。
    2. Excel 文件:使用 pd.read_excel() 导入 Microsoft Excel 文件。
    3. JSON 文件:使用 pd.read_json() 导入 JSON 文件。
    4. SQL 数据库:使用 pd.read_sql()pd.read_sql_query() 从 SQL 数据库中导入数据。
    5. HTML 表格:使用 pd.read_html() 从 HTML 文件或网页中提取表格数据。
    6. Clipboard:使用 pd.read_clipboard() 从剪贴板中导入数据。
    7. HDF5 文件:使用 pd.read_hdf() 导入 HDF5 文件中的数据。
    8. Feather 文件:使用 pd.read_feather() 导入 Feather 文件中的数据。
    9. Parquet 文件:使用 pd.read_parquet() 导入 Parquet 文件中的数据。
    10. Msgpack 文件:使用 pd.read_msgpack() 导入 Msgpack 文件中的数据。

    Pandas 常用数据导出

    1. CSV 文件:使用 to_csv() 方法将数据导出到逗号分隔值文件。
    2. Excel 文件:使用 to_excel() 方法将数据导出到 Microsoft Excel 文件。
    3. JSON 文件:使用 to_json() 方法将数据导出到 JSON 文件。
    4. SQL 数据库:使用 to_sql() 方法将数据导出到 SQL 数据库中。
    5. HTML 表格:使用 to_html() 方法将数据导出为 HTML 表格格式。
    6. Clipboard:使用 to_clipboard() 方法将数据复制到剪贴板。
    7. HDF5 文件:使用 to_hdf() 方法将数据导出到 HDF5 文件中。
    8. Feather 文件:使用 to_feather() 方法将数据导出到 Feather 文件中。
    9. Parquet 文件:使用 to_parquet() 方法将数据导出到 Parquet 文件中。
    10. Msgpack 文件:使用 to_msgpack() 方法将数据导出到 Msgpack 文件中。

    数据导入示例

    CSV 文件:
    import pandas as pd
    
    # 从 CSV 文件导入数据
    data_csv = pd.read_csv('data.csv')
    data_csv.head()
    
    指定导入文件的编码格式

    在Pandas中,你可以使用encoding参数来指定导入文件的编码格式。如果你知道CSV文件使用的是特定的编码格式,比如UTF-8或者GBK,你可以将encoding参数设置为相应的编码格式。

    import pandas as pd
    
    # 从 UTF-8 编码的 CSV 文件导入数据
    data = pd.read_csv('data.csv', encoding='utf-8')
    data.head()
    

    encoding 参数支持多种常见的编码格式,包括但不限于:

    # 使用 UTF-8 编码导入 CSV 文件
    data_utf8 = pd.read_csv('data.csv', encoding='utf-8')
    
    # 使用 GBK 编码导入 CSV 文件
    data_gbk = pd.read_csv('data.csv', encoding='gbk')
    
    # 使用 UTF-16 编码导入 CSV 文件
    data_utf16 = pd.read_csv('data.csv', encoding='utf-16')
    
    # 使用 ASCII 编码导入 CSV 文件
    data_ascii = pd.read_csv('data.csv', encoding='ascii')
    
    # 使用 ISO-8859-1 编码导入 CSV 文件
    data_iso = pd.read_csv('data.csv', encoding='iso-8859-1')
    
    # 使用 GB2312 编码导入 CSV 文件
    data_gb2312 = pd.read_csv('data.csv', encoding='gb2312')
    
    添加列标题

    当导入 CSV 文件时,如果文件本身没有列标题,可以通过names参数来为DataFrame添加列标题。下面是一个示例:

    import pandas as pd
    
    # 从 UTF-8 编码的 CSV 文件导入数据
    data = pd.read_csv('data.csv', encoding='utf-8',names=["user_id","name","sex"])
    data.head()
    

    在这个示例中,"data.csv"是你要导入的CSV文件的路径。names参数用于指定要为DataFrame添加的列标题,每个标题对应CSV文件中的一列。

    Excel 文件:
    import pandas as pd
    
    # 从 Excel 文件导入数据
    data_excel = pd.read_excel('data.xlsx')
    data_excel.head()
    
    JSON 文件:
    import pandas as pd
    
    # 从 JSON 文件导入数据
    data_json = pd.read_json('data.json')
    data_json.head()
    
    数据库:

    Pandas 可以与 SQLAlchemy 集成,通过 SQLAlchemy 来连接数据库并执行查询操作,然后将查询结果转换为 Pandas DataFrame。这样就可以利用 Pandas 提供的丰富功能来进一步处理和分析数据库中的数据。
    下面是一个示例代码,演示如何使用 SQLAlchemy 和 Pandas 从 MySQL 数据库中读取数据到 DataFrame:

    import pandas as pd
    from sqlalchemy import create_engine
    
    # 创建 SQLAlchemy 引擎
    engine = create_engine('mysql+mysqlconnector://username:password@host:port/database')
    
    # 构建 SQL 查询语句
    query = "SELECT * FROM your_table"
    
    # 使用 Pandas 的 read_sql 函数执行查询并导入数据到 DataFrame
    data = pd.read_sql(query, engine)
    
    # 显示 DataFrame 的前几行数据
    data.head()
    
    # 关闭数据库连接
    engine.dispose()
    
    HTML 表格:
    import pandas as pd
    
    # 从 HTML 文件或网页中提取表格数据
    data_html = pd.read_html('data.html')[0]
    data_html.head()
    
    Clipboard:
    import pandas as pd
    
    # 从剪贴板导入数据
    data_clipboard = pd.read_clipboard()
    data_clipboard.head()
    
    HDF5 文件:
    import pandas as pd
    
    # 从 HDF5 文件中导入数据
    data_hdf5 = pd.read_hdf('data.h5')
    data_hdf5.head()
    
    Feather 文件:
    import pandas as pd
    
    # 从 Feather 文件中导入数据
    data_feather = pd.read_feather('data.feather')
    data_feather.head()
    
    Parquet 文件:
    import pandas as pd
    
    # 从 Parquet 文件中导入数据
    data_parquet = pd.read_parquet('data.parquet')
    data_parquet.head()
    
    Msgpack 文件:
    import pandas as pd
    
    # 从 Msgpack 文件中导入数据
    data_msgpack = pd.read_msgpack('data.msg')
    data_msgpack.head()
    

    数据导出示例

    好的,让我为你演示每种导出方法的使用。

    CSV 文件:
    import pandas as pd
    
    # 导出数据到 CSV 文件
    data.to_csv('exported_data.csv', index=False)
    

    index=False表示不将 DataFrame 的索引写入到导出的 CSV 文件中。

    如果你想将输入数据直接导入到 CSV 文件中,而不需要添加列标题,你可以使用 Pandas 的 to_csv 方法,并将参数 header 设置为 False。这样就不会在导出的 CSV 文件中包含列标题。

    data.to_csv('exported_data.csv', header=False, index=False)
    
    Excel 文件:
    import pandas as pd
    
    # 导出数据到 Excel 文件
    data.to_excel('exported_data.xlsx', index=False)
    
    JSON 文件:
    import pandas as pd
    
    # 导出数据到 JSON 文件
    data.to_json('exported_data.json')
    
    数据库:

    使用 Pandas 和 SQLAlchemy 将数据从 DataFrame 导出到数据库。

    import pandas as pd
    from sqlalchemy import create_engine
    
    # 创建一个示例 DataFrame
    df = pd.DataFrame({
        'name': ['Alice', 'Bob', 'Charlie'],
        'age': [25, 30, 35],
        'city': ['New York', 'Los Angeles', 'Chicago']
    })
    
    # 创建 SQLAlchemy 引擎
    # 注意:请将 username, password, host, port, database 替换为你的数据库信息
    engine = create_engine('mysql+mysqlconnector://username:password@host:port/database')
    
    # 将数据写入到名为 'people' 的新 SQL 表中
    # 如果表已经存在,可以通过设置 if_exists 参数来替换或追加数据
    df.to_sql('people', engine, if_exists='replace', index=False)
    
    # 关闭引擎
    engine.dispose()
    
  • 'people':目标数据库表的名称。
  • engine:SQLAlchemy 数据库引擎。
  • if_exists
  • 'replace' 表示如果目标表已经存在,则会先删除原表,然后再创建新表并写入数据。
  • 'append' 表示向表中追加数据。
  • 'fail' 表示如果表已存在则引发错误。
  • index:是否将 DataFrame 的索引作为一列写入 SQL 表。设置为 False 表示不将索引写入数据库表中,通常在导出数据时,我们不需要保留 DataFrame 的索引,所以将其设置为 False。
  • HTML 表格:
    import pandas as pd
    
    # 导出数据为 HTML 表格格式
    html_table = data.to_html('exported_data.html', index=False)
    
    Clipboard:
    import pandas as pd
    
    # 将数据复制到剪贴板
    data.to_clipboard(index=False)
    
    HDF5 文件:
    import pandas as pd
    
    # 导出数据到 HDF5 文件
    data.to_hdf('exported_data.h5', key='data', mode='w')
    
    Feather 文件:
    import pandas as pd
    
    # 导出数据到 Feather 文件
    data.to_feather('exported_data.feather')
    
    Parquet 文件:
    import pandas as pd
    
    # 导出数据到 Parquet 文件
    data.to_parquet('exported_data.parquet', index=False)
    
    Msgpack 文件:
    import pandas as pd
    
    # 导出数据到 Msgpack 文件
    data.to_msgpack('exported_data.msg')
    

    总结

    本教程介绍了 Pandas 中数据导入和导出的基本操作。通过学习这些技巧,你可以更轻松地处理各种数据格式,并且能够应对实际数据处理和分析中的挑战。

    作者:大恩子

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python中使用Pandas进行数据导入和导出

    发表回复