python读取存储csv/excel文件

1. 关于csv文件

1.1 python读取csv文件

import pandas as pd
df = pd.read_csv('./data.csv', encoding='utf-8')

1.2 python存储csv文件

import pandas as pd
df = pd.DataFrame({'A':[1], 'B':[2]})
df.to_csv('./data.csv', encoding='utf-8')

2. 关于excel文件

2.1 python读取excel文件
(1)python读取多个sheet的excel文件

import pandas as pd
time_start = time.time()
dfs = pd.read_excel('./多个sheet.xlsx', sheet_name=None)
keys = list(dfs.keys())
result = pd.DataFrame()
num = 1
for i in keys:
    df = dfs[i]
    print(f'第{num}个 sheet 的数据如下:\n{df}')
    # result = pd.concat([result,df])
time_end = time.time()
print('共耗时 {}分 {}秒'.format(int(round((time_end - time_start) / 60,0)),round((time_end - time_start) % 60,2)))

(2)python合并多个excel:
os.walk()文件目录遍历器
语法:os.walk(file_path),file_path为需要遍历的目录地址,返回一个三元组(root, dirs, files)。
1)root 所指的是当前正在遍历的这个文件夹的本身的地址
2)dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
3)files 同样是 list , 内容是该文件夹中所有的文件名称(不包括子目录)
实际运用中最常用到的返回值是files

import os
import pandas as pd
def append(path): #path:所有需要合并的excel文件所在的文件夹
    filename_excel = [] # 建立一个空list,用于储存所有需要合并的excel名称
    frames = [] # 建立一个空list,用于储存dataframe
    for root, dirs, files in os.walk(path):
        for file in files:
        	file_with_path = os.path.join(root, file) 
            filename_excel.append(file_with_path)
            df = pd.read_excel(file_with_path, engine='openpyxl')
            # 将文件名中包含的日期信息写入dataframe的日期列:
            # df["日期"] = pd.to_datetime(file.strip('.xls')[-1:])  # 根据情况调整日期位置
            # 将sheet名称命名为excel的名字:
            # df.to_excel(writer, sheet_name=file.strip('.xls'))  # 删除文件名的后缀,如.xlsx/.csv
            frames.append(df)
    df = pd.concat(frames, axis=0)
    return df
file_path = './file_name'
append(file_path)

os.listdir():参数为文件夹路径,可以返回文件夹下的所有子文件夹、文件名称;但是不能返回子文件夹下的文件,并且仅返回名称。

import os
# 项目所在的绝对路径
project_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
resource_dir = os.path.join(project_dir, 'resource')
file_list = []
for file_name in os.listdir(os.path.join(resource_dir, "ori_data")):
    file_list.append(file_name.split(".")[0])

2.2 python存储excel文件

你可能感兴趣的:(python,excel,pandas)