python3处理表格常用操作

  1. 使用pandas库读取excel文件
import pandas as pd
data = pd.read_excel('D:\\飞书\\近一年用量.xlsx')
  1. 指定工作表
import pandas as pd
data = pd.read_excel('D:\\飞书\\近一年用量.xlsx', sheet_name='Sheet1')
  1. 读取日期格式
data = pd.read_excel('example.xlsx', parse_dates=['Date'])
  1. 添加列名
data = pd.read_excel('example.xlsx', names=['A', 'B', 'C'])
  1. 保存为excel文件
data.to_excel('output.xlsx', index=False)
  1. 筛选数据
filtered_data = data[data['A'] > 10]
  1. 排序数据
sorted_data = data.sort_values(by='A')
  1. 分组数据
grouped_data = data.groupby('A')
  1. 计算分组统计信息
grouped_mean = grouped_data.mean()
  1. 查找替换数据
data.replace({'old_value': 'new_value'}, inplace=True)
  1. 插入列
data.insert(0, 'NewColumn', 'default_value')
  1. 删除列
data.drop(data.columns[0], axis=1, inplace=True)
  1. 重命名列
data.rename(columns={'A': 'NewColumnName'}, inplace=True)
  1. 合并两个表格数据
merged_data = pd.concat([data1, data2], ignore_index=True)
  1. 数据透视表
pivot_table = data.pivot_table(index='A', columns='B', values='C')
  1. 数据透视图
import matplotlib.pyplot as plt

# 创建数据透视图
pivot_table = data.pivot_table(index='A', columns='B', values='C')
pivot_table.plot(kind='bar')
plt.show()
  1. 数据清理,去除空格和特殊字符
# 去除空格
data['ColumnName'].str.strip()

# 去除特殊字符
data['ColumnName'] = data['ColumnName'].str.replace(r'[^a-zA-Z0-9]', '')
  1. 使用excel公式
# 使用Excel公式
data=pd.read_excel('example.xlsx')
data['NewColumn'] = '=SUM(A2:B2)'
  1. 获取某列数据的唯一值
# 获取A列唯一值
data["A"].unique()
  1. 删除重复行
# 删除重复行
df = df.drop_duplicates()
  1. 修改列名大小写
# 修改列名大小写
df.columns = [col.lower() for col in df.columns]
  1. 修改列顺序
# 修改列顺序
df = df[['B', 'A', 'C']]
  1. 添加新列
# 添加新列
df['D'] = df['A'] + df['B']
  1. 删除指定列
# 删除指定列
df = df.drop('A', axis=1)
  1. 使用表达式筛选数据
# 使用条件表达式筛选数据
filtered_data = df[(df['A'] > 10) & (df['B'] < 5)]
  1. 使用apply函数应用自定义函数

# 使用apply函数应用自定义函数
def custom_function(x):
    return x * 2

df['A'] = df['A'].apply(custom_function)
  1. 使用map函数映射值
# 使用map函数映射值
df['A'] = df['A'].map({'old_value': 'new_value'})
  1. 使用fillna函数填充缺失值
# 使用fillna函数填充缺失值
df['A'].fillna(value=0, inplace=True)
  1. 使用interpolate
# 使用interpolate函数插值填充缺失值
df['A'].interpolate(inplace=True)
  1. 使用merge函数合并两个Dataframe
# 使用merge函数合并两个DataFrame
merged_data = pd.merge(df1, df2, on='key')
  1. 使用concat函数合并两个DataFrane
# 使用concat函数合并两个DataFrame
concatenated_data = pd.concat([df1, df2], ignore_index=True)
  1. 使用melt函数将宽格式数据转换为长格式数据
# 使用melt函数将宽格式数据转换为长格式数据
melted_data = pd.melt(df, id_vars=['A'], value_vars=['B', 'C'])
  1. 使用groupby函数分组数据并金属统计信息
# 使用groupby函数分组数据并计算统计信息
grouped_data = df.groupby('A').agg({'B': ['mean', 'sum']})
  1. 使用crosstab函数创建交叉表
# 使用crosstab函数创建交叉表
crosstab_data = pd.crosstab(df['A'], df['B'])
  1. 使用cut函数将连续变量话费为离散区间
# 使用cut函数将连续变量划分为离散区间
df['A'] = pd.cut(df['A'], bins=[0, 10, 20, 30])
  1. 脚本
import pandas as pd
import openpyxl

path = 'D:\\飞书\\近一年用量.xlsx'
# pd.read_excel(path, sheet_name='导出结果')
data = pd.read_excel(path, sheet_name='移动')
data.insert(19, "月均使用量", '')     # 新增一列,名字叫月均使用量,数据填充为空
data['月均使用量'] = data['总用量'] / 13
date = data.sort_values(by='月均使用量', ascending=False)  # 降序排序,反之为True
date1G = date[(date['月均使用量'] <= 1024) & (date['月均使用量'] > 0)]
date2G = date[(date['月均使用量'] <= 2048) & (date['月均使用量'] > 1024)]
date4G = date[(date['月均使用量'] <= 4096) & (date['月均使用量'] > 2048)]
date6G = date[(date['月均使用量'] <= 6144) & (date['月均使用量'] > 4096)]
date10G = date[(date['月均使用量'] <= 10240) & (date['月均使用量'] > 6144)]
date12G = date[(date['月均使用量'] <= 12288) & (date['月均使用量'] > 10240)]
date15G = date[(date['月均使用量'] <= 15360) & (date['月均使用量'] > 12288)]
date20G = date[(date['月均使用量'] <= 20480) & (date['月均使用量'] > 15360)]
date1G.to_excel('D:\\飞书\\过去一年用量1G.xlsx')
date2G.to_excel('D:\\飞书\\过去一年用量2G.xlsx')
date4G.to_excel('D:\\飞书\\过去一年用量4G.xlsx')
date6G.to_excel('D:\\飞书\\过去一年用量6G.xlsx')
date10G.to_excel('D:\\飞书\\过去一年用量10G.xlsx')
date12G.to_excel('D:\\飞书\\过去一年用量12G.xlsx')
date15G.to_excel('D:\\飞书\\过去一年用量15G.xlsx')
date20G.to_excel('D:\\飞书\\过去一年用量20G.xlsx')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_51711897

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值