Python csv、excel 按列分表 数据透视 轴向旋转 pivot() pivot_table()

csv 文件按列分表、数据透视

1. 单个 excel (或csv)文件 按列分表


import pandas as pd
import xlsxwriter
import glob

input_path = "/Users/libin/Desktop/libin/"
ouput_path = "/Users/libin/Desktop/libin/"
file_name = "test.csv"

# 读取 csv 数据  
# skiprows 忽略前4行 
# nrows 只读取多少行
# 将 read_csv 替换成 read_excel 就能读取 excel 文件了
df = pd.read_csv(input_path + file_name, skiprows = 4, nrows = 1000)
# 读取数据 excel 文件
# df = pd.read_excel("/Users/libin/Desktop/libin/bbb.xlsx")


# file_name[:-4] 字符串截取,去掉后4位(文件类型)
writer = pd.ExcelWriter(ouput_path + file_name[:-4] + '.xlsx',engine='xlsxwriter')
for name_sheet,group_sheet in df.groupby("要分组的列名"):
	group_sheet.to_excel(writer, sheet_name = name_sheet, index = False)

writer.save()

2. 目录下所有的文件按列分表

import pandas as pd
import xlsxwriter
import glob

input_path = "/Users/libin/Desktop/libin/"
ouput_path = "/Users/libin/Desktop/libin/"

# 建立循环对于每个文件调用excel_to_csv()
for file_name in glob.glob("*.csv"):
    # 读取数据  skiprows 忽略前4行  nrows 只读取多少行
    df = pd.read_csv(input_path + file_name, skiprows = 4 )

    # file_name[:-4] 字符串截取,去掉后4位(文件类型)
    writer = pd.ExcelWriter(ouput_path + file_name[:-4] + '.xlsx',engine='xlsxwriter')

    for name_sheet,group_sheet in df.groupby("要分组的列名"):
        group_sheet.to_excel(writer, sheet_name = name_sheet, index = False)

writer.save()


3. 目录下所有的文件按列分表,并创建数据透视

import pandas as pd
import numpy as np
import xlsxwriter
import glob

input_path = "/Users/libin/Desktop/libin/"
ouput_path = "/Users/libin/Desktop/libin/"

# 建立循环对于每个文件调用excel_to_csv()
for file_name in glob.glob("*.csv"):
    # 读取数据  skiprows 忽略前4行
    df = pd.read_csv(input_path + file_name, skiprows = 4 )

    # file_name[:-4] 字符串截取,去掉后4位(文件类型)
    writer = pd.ExcelWriter(ouput_path + file_name[:-4] + '.xlsx',engine='xlsxwriter')
	# index 必选参数,用来指定行索引。如果用数组做行索引,数据必须等长。
    # columns 必选参数,用来指定列索引。
    # dropna 如果整行都为NA值,则进行丢弃,默认丢弃。
    for name_sheet,group_sheet in df.groupby("Specie"):
        df_table = group_sheet.pivot_table(
        index=['City'],
        columns=['Date'],
        dropna = False, 
        values=['median'])
        df_table.to_excel(writer, sheet_name = name_sheet)

writer.save()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值