pandas DataFrame存入到excel中和从excel中读取出来时的不同

博主在写自动化小程序时,发现pandas从Excel中读写数据存在问题。读取时,若不处理,会将所有数据作列,可通过设置index_col参数指定索引列;存储时,index有无名字会影响其在Excel中的存储方式。
部署运行你感兴趣的模型镜像

       在写一个自动化小程序的时候,遇到了一个小bug,找了老半天也没找到问题在哪里,后来才发现问题出现在pandas从excel中读存取数据时。

       例如,一个excel文件是这样的:

       用Python pandas模块将excel中数据读出来是这样,会将表中的所有数据作为columns中的数据,并自动的给DataFrame添加一个从0-n-1(n为数据的行)的index。 


     

        现在我们将这个DataFrame存入到excel中去。

      存进去的时候我们发现,它会将index也储存在excel中去,并且作为单独的一列储存在最左边。

 

之后我们再将 ooo.xlsx中的数据用pandas读取出来。

       我们发现pandas照样将最左边的index读取出来了并没有单独在最左边加上一列。但是我现在做个修改,在excel表格中最左边的index上面加个name。

然后我再像上面一样读取出来。

        我们发现刚才加个名字的index会做为单独的一个列被读取出来,并且增加了一个新的从0到n-1的index。

        如果想把你想读出来时设备ID是index,只需要增加一个参数(index_col)会默认把第一列做为index。

   

 

       从上面的例子可以看出,从Excel中读取文件时,如果想把第一列做为index,把excel中的第一列的名字(第一个值)弄成空或者加index_col = 0 参数,否则pandas会把excel中的所有内容做为列。 

     把DataFrame存储到Excel中去的时候,如果index有name,excel会把index的位置放到第一列并且高度和其他列齐平,如果index没有名字则会把index正常存储到excel中去。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

在将 Pandas DataFrame 存储到 Hive 中之前,需要先将其转换为 Spark DataFrame。可以使用 PySpark 的 SQLContext 或 SparkSession 对象创建 Spark DataFrame。假设已经创建了一个名为 `pandas_df` 的 Pandas DataFrame,然后可以执行以下步骤将其存储到 Hive 中: 1. 导入必要的库和模块: ```python from pyspark.sql import SparkSession, SQLContext ``` 2. 创建 SparkSession 对象: ```python spark = SparkSession.builder \ .appName("pandas_to_hive") \ .config("spark.sql.warehouse.dir", "/user/hive/warehouse") \ .enableHiveSupport() \ .getOrCreate() ``` 其中,`appName` 是应用程序名称,`config` 指定了 Hive 数据仓库的路径,`enableHiveSupport` 用于启用 Hive 支持。 3.Pandas DataFrame 转换为 Spark DataFrame: ```python spark_df = spark.createDataFrame(pandas_df) ``` 4. 将 Spark DataFrame 存储到 Hive 中: ```python spark_df.write \ .mode("overwrite") \ .saveAsTable("database_name.table_name") ``` 其中,`mode` 指定了写入模式,`saveAsTable` 将数据写入到指定的表中,如果表存在,则会自动创建。 完整示例代码如下: ```python from pyspark.sql import SparkSession, SQLContext import pandas as pd # 创建 SparkSession 对象 spark = SparkSession.builder \ .appName("pandas_to_hive") \ .config("spark.sql.warehouse.dir", "/user/hive/warehouse") \ .enableHiveSupport() \ .getOrCreate() # 读取 Pandas DataFrame pandas_df = pd.read_csv("path/to/csv/file.csv") # 将 Pandas DataFrame 转换为 Spark DataFrame spark_df = spark.createDataFrame(pandas_df) # 将 Spark DataFrame 存储到 Hive 中 spark_df.write \ .mode("overwrite") \ .saveAsTable("database_name.table_name") ``` 请根据实际情况修改代码中的参数和路径。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值