ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Python将表格文件中某些列的数据整体向上移动一行
[打印本页]
作者:
风雨同行
时间:
2024-9-9 12:38
标题:
Python将表格文件中某些列的数据整体向上移动一行
本文介绍基于
Python
语言,针对一个
文件夹
下大量的
Excel
表格文件,对其中的
每一个文件
加以操作——将其中
指定的多少列
的数据部门都向上移动一行,并将所有操作完毕的
Excel
表格文件中的数据加以合并,生成一个新的
Excel
文件的方法。
首先,我们明白一下本文的需求。在一个文件夹内,有大量的
Excel
表格文件(以.csv格式文件为例),其中每一个文件都有着类似如下图所示的数据特性;我们渴望,对于下图中紫色框内的列,其中的
数据部门
(每一列都有一个
列名
,这个列名不算
数据部门
)都向上提升一行(好比原来数据部门的第2行变到第1行,原来第3行变到第2行,以此类推)。
由上图也可以看到,
需要加以数据操作的列
,有的在原来数据部门的第1行就没有数据,而有的在原来的数据部门中第1行也有数据;对于后者,我们在数据向上提升一行之后,相当于原来第1行的数据就被覆盖掉了。此外,很显然在每一个文件的操作结束后,
加以处理的列
的数据部门的
最后一行
肯定是没有数据的,因此在合并全部操作后的文件之前,还渴望将每一个
操作后文件
的
最后一行
删除。
知道了需求,我们就可以开始代码的撰写;具体代码如下。
# -*- coding: utf-8 -*-
"""
Created on Fri May 19 01:47:06 2023
@author: fkxxgis
"""
import os
import pandas as pd
original_path = "E:/01_Reflectivity/25_2022Data_New"
result_path = "E:/01_Reflectivity/99_Model/02_Extract_Data/26_Train_Model_New"
result_df = pd.DataFrame()
for file in os.listdir(original_path):
if file.endswith(".csv"):
df = pd.read_csv(os.path.join(original_path, file))
columns_move_index = list(range(8, 16)) + list(range(17, 36))
for columns_index in columns_move_index:
for i in range(len(df) - 1):
df.iat[i, columns_index] = df.iat[i + 1, columns_index]
if len(df):
df = df.drop(len(df) - 1)
# df = df.iloc[ : , 1 : ]
result_df = pd.concat([result_df, df])
result_df.to_csv(os.path.join(result_path, "Train_Model_0715_Main.csv"), index = False)
复制代码
其中,original_path表示存放有多个待处理的
Excel
表格文件的文件夹路径,result_path则是结果
Excel
表格文件的存放路径。
首先,我们通过result_df = pd.DataFrame()创建一个空的
DataFrame
,用于保存处理后的数据。接下来,遍历原始文件夹中的所有文件,并找到文件夹内以.csv末端的文件;随后,读取这些.csv文件,并将其保存到df中。
其次,我们通过columns_move_index = list(range(8, 16)) + list(range(17, 36))指定需要移动数据的列的索引范围,并随后遍历需要移动数据的列。接下来的df.iat[i, columns_index] = df.iat[i + 1, columns_index]表示将当前行的数据替换为下一行对应的数据。
接下来,我们通过if len(df):判定是否
DataFrame
不为空,假如是的话就删除
DataFrame
中的最后一行数据;随后,将处理后的
DataFrame
连接到result_df中。
最后,我们通过result_df.to_csv()函数,将终极处理后的
DataFrame
保存为一个新的
Excel
表格文件,从而完成我们的需求。
至此,大功告成。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4