Python数据清洗基础

在Python中进行数据清洗和可视化是一个多步骤的过程,涉及到数据的读取、预处理、分析和图形表示。以下是一些关键步骤和代码示例,这些步骤可以帮助你从原始数据中提取有价值的信息,并以直观的方式展示。

数据清洗

  1. 读取数据
import pandas as pd data = pd.read_csv('data.csv')
  1. 处理缺失值
# 填充缺失值
data.fillna(method='ffill', inplace=True)
# 或者删除缺失值
data.dropna(inplace=True)
  1. 数据类型转换
# 转换日期列为日期类型 
data['date'] = pd.to_datetime(data['date'])
  1. 删除重复数据
# 删除重复行 
data.drop_duplicates(inplace=True)
  1. 数据标准化
from sklearn.preprocessing
import StandardScaler 
# 标准化数值型数据 
scaler = StandardScaler() 
data[['sales', 'profit']] = scaler.fit_transform(data[['sales', 'profit']])

数据分析

  1. 数据描述
# 获取数据的描述性统计信息 
description = data.describe()
  1. 分组汇总
# 按类别分组汇总销售额 
category_sales = data.groupby('category')['sales'].sum()
  1. 计算相关性
# 计算销售额与利润的相关性
correlation = data['sales'].corr(data['profit'])
  1. 数据透视表
# 创建数据透视表 
pivot_table = data.pivot_table(values='sales', index='category', columns='region', aggfunc='sum')

数据可视化

  1. 折线图
import matplotlib.pyplot as plt 
# 绘制销售趋势折线图 
plt.figure(figsize=(10, 6)) 
plt.plot(data['date'], data['sales'], label='Sales') 
plt.xlabel('Date') 
plt.ylabel('Sales') 
plt.title('Sales Over Time') 
plt.legend() 
plt.show()
# 带数据,可直接运行版
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# 假设数据
dates = pd.date_range("20230101", periods=6)
sales = np.random.randint(100, 200, size=6)
data = pd.DataFrame({'date': dates, 'sales': sales})

plt.figure(figsize=(10, 6))
plt.plot(data['date'], data['sales'], marker='o', linestyle='-', color='b')
plt.title('Sales Over Time')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.grid(True)
plt.show()

  1. 柱状图
# 绘制不同类别销售额的柱状图 
plt.figure(figsize=(10, 6)) 
plt.bar(data['category'], data['sales'], color='skyblue') 
plt.xlabel('Category') 
plt.ylabel('Sales') 
plt.title('Sales by Category') 
plt.show()
  1. 散点图
# 绘制利润与销售额的散点图 
plt.figure(figsize=(10, 6)) 
plt.scatter(data['profit'], data['sales'], color='red') plt.xlabel('Profit') 
plt.ylabel('Sales') 
plt.title('Profit vs Sales') 
plt.show()
  1. 直方图
# 绘制销售额分布的直方图 
plt.figure(figsize=(10, 6)) 
plt.hist(data['sales'], bins=20, color='green') 
plt.xlabel('Sales') 
plt.ylabel('Frequency') 
plt.title('Sales Distribution') 
plt.show()
# 带数据,可直接运行版
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# 假设数据
dates = pd.date_range("20230101", periods=6)
sales = np.random.randint(100, 200, size=6)
data = pd.DataFrame({'date': dates, 'sales': sales})

plt.figure(figsize=(10, 6))
plt.hist(data['sales'], bins=10, color='green', alpha=0.7)
plt.title('Sales Distribution')
plt.xlabel('Sales')
plt.ylabel('Frequency')
plt.grid(True)
plt.show()

  1. 高级可视化(如热力图)
import seaborn as sns
# 绘制相关性热力图 
plt.figure(figsize=(10, 6)) 
sns.heatmap(data.corr(), annot=True, cmap='coolwarm') 
plt.title('Correlation Heatmap') 
plt.show()
# 带数据,可直接运行版
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# 假设数据
dates = pd.date_range("20230101", periods=6)
sales = np.random.randint(100, 200, size=6)
data = pd.DataFrame({'date': dates, 'sales': sales})

# 假设相关性数据
corr = data.corr()
plt.figure(figsize=(8, 6))
sns.heatmap(corr, annot=True, cmap='coolwarm', linewidths=.5)
plt.title('Correlation Heatmap')
plt.show()

这些步骤和代码示例提供了一个从数据清洗到可视化的完整流程,帮助你更好地理解和分析你的数据。通过这些方法,你可以将原始数据转换为有价值的洞察,并以图形的方式进行展示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

William数据分析

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

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

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

打赏作者

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

抵扣说明:

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

余额充值