excel,csv,dataframe数据处理常用操作记录

一些常用格式的python处理方法记录(持续更新)

常用的库:

import pandas as pd
import numpy as np
import openxyl
import csv

1. 读取excel文件为DataFrame

df = pd.read_excel('file.xlsx')

2.将DataFrame存为excel文件

df.to_excel('result.xlsx', index=False)

其中,to_excel方法中的index=False表示不将行索引写入Excel文件中。如果需要保留行索引,可以将其设置为True。

3.读取csv文件为DataFrame

df = pd.read_csv('file.csv')

4.将DataFrame存为csv文件

df.to_csv('result.csv', index=False)

index用法同2。

将新的DataFrame续写到已有CSV文件里

df_new.to_csv("existing_file.csv", mode="a", header=False, index=False)

excel与csv之间的转换通过dataframe即可完成。

5.将list依次续写入csv文件

with open('file.csv', 'a', newline='') as file:
    writer = csv.writer(file)
    for row in data:
        writer.writerow(row)

6.将excel某一列的数据保存为list

# 读取Excel文件
data = pd.read_excel(r"file.xlsx")
# 获取第3列数据,保存到列表中
list = data.iloc[:, 2].tolist()

7.读取一个文件夹下的所有csv文件,都转换为dataframe

import os
import glob
folder_path = 'csv_folder'

csv_files = glob.glob(os.path.join(folder_path, "*.csv"))

dataframes = []
for file in csv_files:
    df = pd.read_csv(file)
    dataframes.append(df)

8.将一个csv文件中的数据行按条件筛选后存入新文件

import csv
#筛选出第三列包含空格的行存入新文件
file_path = "file.csv"
output_file_path = 'output.csv'

with open(file_path, 'r', encoding='utf-8') as csvfile, open(output_file_path, 'w', encoding='utf-8', newline='') as output:
    reader = csv.reader(csvfile)
    writer = csv.writer(output, lineterminator='\n')#使用换行符作为行终止符
    for row in reader:
        if ' ' in row[2]:
            writer.writerow(row)

9.对csv文件按第一列的值不区分大小写去重

import pandas as pd

# 读取 CSV 文件
input_file = ' input.csv'
df = pd.read_csv(input_file,encoding='gb18030') #内容是中文则用'gb18030'

# 将第一列转换为小写
df[df.columns[0]] = df[df.columns[0]].str.lower()

# 删除具有重复第一列值的行
unique_df = df.drop_duplicates(subset=df.columns[0], keep='first')
#keep='first'表示保留第一个出现的重复行

#若要第一列和第二列值相同的重复行:unique_df = df.drop_duplicates(subset=[df.columns[0], df.columns[1]], keep='first')

# 将结果保存到新的 CSV 文件
output_file = 'output.csv'
unique_df.to_csv(output_file, encoding='gb18030',index=False)

10.对一个excel筛选出没有在另一个excel中出现过的数据

import pandas as pd

# 读取两个 Excel 文件
file1_path = "file1.xlsx"
file2_path = "file2.csv"

# 读取 Excel 文件中的第一个 sheet
df1 = pd.read_excel(file1_path, sheet_name='Sheet1')
df2 = pd.read_csv(file2_path,encoding='gb18030')

matching_column_name = "column" #按哪一列的值进行筛选

# 找到 df1 中与 df2["column_name"] 匹配的行
matching_rows = df1[df1[matching_column_name].isin(df2[matching_column_name])].index

# 删除匹配的行
df1_filtered = df1.drop(matching_rows)

# 将过滤后的 DataFrame 保存到新的 Excel 文件中
output_path = "filtered_file.xlsx"
df1_filtered.to_excel(output_path, index=False)

11.将两个文件按条件合并

file_1 = "file_1.xlsx"
file_2 = "file_2.xlsx"

data_1 = pd.read_excel(file_1)
data_2 = pd.read_excel(file_2)

# 按照文件的前两列进行合并
# 'left'意味着我们保留file_1文件中的所有行,即使在file_2文件中找不到匹配的行
merged_data = pd.merge(data_1.iloc[:, :2], data_2, left_on=data_1.columns[:2].tolist(), right_on=data_2.columns[:2].tolist(), how='left')

# 写入到新的excel文件中
merged_data.to_excel('output_file.xlsx', index=False)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值