「工作中的那些Excel难题」
「1. 批量生成复杂报表」
「问题:」
有一个客户列表,你需要每天生成一堆报表,分别保存到不同的文件夹里,手动操作要命!
「解决方案:」
Python一次性搞定!
「代码示例:」
from openpyxl import Workbook
import os
# 创建客户列表
customers = ["Alice", "Bob", "Charlie"]
# 批量生成Excel文件
output_dir = "reports"
os.makedirs(output_dir, exist_ok=True)
for customer in customers:
wb = Workbook()
ws = wb.active
ws.title = "Summary"
ws["A1"] = f"Report for {customer}"
ws["A2"] = "Data goes here..."
wb.save(f"{output_dir}/{customer}_report.xlsx")
print(f"报表已保存到 {output_dir} 文件夹!")
「2. 自动清洗脏数据」
「问题:」
客户提供的Excel文件,数据格式千奇百怪,乱七八糟!你要手动清洗1000多行数据,头都大了。
「解决方案:」
Python自动清洗,效率999倍提升!
「代码示例:」
import pandas as pd
# 模拟脏数据
data = {
"Name": [" Alice ", "BOB", "Charlie "],
"Age": ["25", "twenty-six", "27"],
"Salary": ["10000$", "15000$", "20000$"]
}
df = pd.DataFrame(data)
# 清洗数据
df["Name"] = df["Name"].str.strip().str.title() # 去掉空格并首字母大写
df["Age"] = pd.to_numeric(df["Age"], errors="coerce") # 转为数字,非数字变NaN
df["Salary"] = df["Salary"].str.replace("$", "").astype(int) # 移除$符号并转为整数
print(df)
「3. 合并多个Excel文件」
「问题:」
老板发给你50个文件夹,每个文件夹都有数百个Excel文件,你需要合并它们,疯了吧?
「解决方案:」
Python一行代码跑一片森林。
「代码示例:」
import pandas as pd
import os
# 模拟文件路径
file_paths = ["file1.xlsx", "file2.xlsx", "file3.xlsx"]
# 合并所有文件
combined_df = pd.concat(pd.read_excel(file) for file in file_paths)
combined_df.to_excel("combined.xlsx", index=False)
print("文件已合并为 combined.xlsx!")
「4. 自动创建图表」
「问题:」
你需要从数据中生成各种图表,比如柱状图、折线图,还要改颜色、加标题。Excel每次调整样式都要点来点去。
「解决方案:」
Python自动生成炫酷图表!
「代码示例:」
import pandas as pd
import matplotlib.pyplot as plt
# 模拟数据
data = {
"Department": ["Sales", "HR", "IT", "Finance"],
"Revenue": [100000, 50000, 120000, 70000]
}
df = pd.DataFrame(data)
# 绘制柱状图
plt.bar(df["Department"], df["Revenue"], color="skyblue")
plt.title("Department Revenue")
plt.xlabel("Department")
plt.ylabel("Revenue")
plt.savefig("revenue_chart.png") # 保存为图片
plt.show()
「5. 根据条件筛选并生成新文件」
「问题:」
你的Excel里有十万条数据,现在需要根据某些条件筛选出满足要求的数据,并保存为新的文件,Excel筛选操作很容易卡死。
「解决方案:」
Python轻松筛选并保存。
「代码示例:」
import pandas as pd
# 模拟大数据
data = {
"Name": ["Alice", "Bob", "Charlie", "Daisy", "Edward"],
"Age": [25, 30, 35, 40, 45],
"Department": ["HR", "Sales", "IT", "Finance", "Sales"]
}
df = pd.DataFrame(data)
# 条件筛选:只保留Sales部门的员工
filtered_df = df[df["Department"] == "Sales"]
# 保存筛选后的数据到新文件
filtered_df.to_excel("filtered_data.xlsx", index=False)
print("筛选完成,结果已保存为 filtered_data.xlsx")
如果你对Excel的操作已经让你怀疑人生,是时候学点Python了!
从批量任务到复杂数据处理,从数据清洗到自动化报表,Python都能做到。