再见了,Python~ 再见了大别山原唱
liuian 2024-12-20 17:18 77 浏览
这几天,很多同学问到,关于Python数据分析方面的操作。
用起来头疼,需要不断的查询。所以,今天给大家总结了100个最最核心的操作。
如果再遇到问题,这里直接查看,超级方便,基本日常使用的都有了~
需要本文PDF的同学,文末获取~
每个操作都包含介绍、语法和案例。这些操作涉及数据导入、数据清理、数据分析、数据可视化和机器学习等方面。
其中涉及到的data.csv,给出一个示例数据,大部分可用~
date,region,product,sales,quantity,discount,customer_type
2024-01-01,North,Widget A,1000,10,5%,Retail
2024-01-01,South,Widget B,1500,15,10%,Wholesale
2024-01-02,North,Widget A,1100,11,5%,Retail
2024-01-02,South,Widget B,1600,16,10%,Wholesale
1. 导入常用库
导入必要的库,如NumPy、Pandas和Matplotlib等,是进行数据分析的基础。
语法
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
2. 读取CSV文件
读取CSV文件并将其转换为Pandas DataFrame。
语法
df = pd.read_csv('filename.csv')
案例
df = pd.read_csv('data.csv')
print(df.head())
3. 读取Excel文件
读取Excel文件并将其转换为Pandas DataFrame。
语法
df = pd.read_excel('filename.xlsx')
案例
df = pd.read_excel('data.xlsx')
print(df.head())
4. 读取JSON文件
读取JSON文件并将其转换为Pandas DataFrame。
语法
df = pd.read_json('filename.json')
案例
df = pd.read_json('data.json')
print(df.head())
5. 查看数据的基本信息
查看DataFrame的基本信息,如行数、列数和数据类型等。
语法
df.info()
案例
df = pd.read_csv('data.csv')
df.info()
6. 查看数据的统计信息
查看DataFrame的统计信息,如均值、标准差和分位数等。
语法
df.describe()
案例
df = pd.read_csv('data.csv')
print(df.describe())
7. 检查缺失值
检查DataFrame中缺失值的情况。
语法
df.isnull().sum()
案例
df = pd.read_csv('data.csv')
print(df.isnull().sum())
8. 删除缺失值
删除DataFrame中包含缺失值的行或列。
语法
df.dropna(axis=0, inplace=True)
案例
df = pd.read_csv('data.csv')
df.dropna(axis=0, inplace=True)
print(df.info())
9. 填充缺失值
用指定的值填充DataFrame中的缺失值。
语法
df.fillna(value, inplace=True)
案例
df = pd.read_csv('data.csv')
df.fillna(0, inplace=True)
print(df.head())
10. 数据类型转换
将DataFrame中的列转换为指定的数据类型。
语法
df['column'] = df['column'].astype(dtype)
案例
df = pd.read_csv('data.csv')
df['date'] = pd.to_datetime(df['date'])
print(df.info())
11. 选择列
选择DataFrame中的特定列。
语法
df['column']
df[['col1', 'col2']]
案例
df = pd.read_csv('data.csv')
print(df['column1'].head())
print(df[['column1', 'column2']].head())
12. 条件筛选
根据条件筛选DataFrame中的行。
语法
df[df['column'] > value]
案例
df = pd.read_csv('data.csv')
filtered_df = df[df['age'] > 30]
print(filtered_df.head())
13. 排序
对DataFrame按指定列排序。
语法
df.sort_values(by='column', ascending=True)
案例
df = pd.read_csv('data.csv')
sorted_df = df.sort_values(by='age', ascending=False)
print(sorted_df.head())
14. 重命名列
重命名DataFrame的列名。
语法
df.rename(columns={'old_name': 'new_name'}, inplace=True)
案例
df = pd.read_csv('data.csv')
df.rename(columns={'old_name': 'new_name'}, inplace=True)
print(df.head())
15. 删除列
删除DataFrame中的指定列。
语法
df.drop(columns=['col1', 'col2'], inplace=True)
案例
df = pd.read_csv('data.csv')
df.drop(columns=['column1', 'column2'], inplace=True)
print(df.head())
16. 分组计算
对DataFrame按指定列分组并进行聚合计算。
语法
df.groupby('column').agg({'col1': 'mean', 'col2': 'sum'})
案例
df = pd.read_csv('data.csv')
grouped_df = df.groupby('department').agg({'salary': 'mean', 'bonus': 'sum'})
print(grouped_df)
17. 数据透视表
创建数据透视表,用于数据汇总和分析。
语法
df.pivot_table(values='col', index='row', columns='column', aggfunc='mean')
案例
df = pd.read_csv('data.csv')
pivot_table = df.pivot_table(values='sales', index='region', columns='product', aggfunc='sum')
print(pivot_table)
18. 合并DataFrame
合并两个DataFrame。
语法
pd.merge(df1, df2, on='key')
案例
df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
merged_df = pd.merge(df1, df2, on='id')
print(merged_df.head())
19. 拼接DataFrame
将多个DataFrame沿指定轴拼接。
语法
pd.concat([df1, df2], axis=0)
案例
df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
concat_df = pd.concat([df1, df2], axis=0)
print(concat_df.head())
20. 删除重复值
删除DataFrame中的重复行。
语法
df.drop_duplicates(inplace=True)
案例
df = pd.read_csv('data.csv')
df.drop_duplicates(inplace=True)
print(df.info())
21. 计算相关系数
计算DataFrame中各列之间的相关系数。
语法
df.corr()
案例
df = pd.read_csv('data.csv')
correlation_matrix = df.corr()
print(correlation_matrix)
22. 创建透视图
创建透视图,用于数据汇总和分析。
语法
pd.pivot_table(df, values='column', index='rows', columns='cols', aggfunc='mean')
案例
df = pd.read_csv('data.csv')
pivot_table = pd.pivot_table(df, values='sales', index='region', columns='product', aggfunc='sum')
print(pivot_table)
23. 数据可视化-散点图
使用Matplotlib或Seaborn绘制散点图。
语法
plt.scatter(df['x'], df['y'])
案例
df = pd.read_csv('data.csv')
plt.scatter(df['height'], df['weight'])
plt.xlabel('Height')
plt.ylabel('Weight')
plt.show()
24. 数据可视化-折线图
使用Matplotlib或Seaborn绘制折线图。
语法
plt.plot(df['x'], df['y'])
案例
df = pd.read_csv('data.csv')
plt.plot(df['date'], df['sales'])
plt.xlabel('Date')
plt.ylabel('Sales')
plt.show()
25. 数据可视化-柱状图
使用Matplotlib或Seaborn绘制柱状图。
语法
plt.bar(df['x'], df['y'])
案例
df = pd.read_csv('data.csv')
plt.bar(df['category'], df['value'])
plt.xlabel('Category')
plt.ylabel('Value')
plt.show()
26. 数据可视化-饼图
使用Matplotlib绘制饼图。
语法
plt.pie(df['values'], labels=df['labels'])
案例
df = pd.read_csv('data.csv')
plt.pie(df['sales'], labels=df['region'], autopct='%1.1f%%')
plt.title('Sales Distribution by Region')
plt.show()
27. 数据可视化-箱线图
使用Seaborn绘制箱线图,用于显示数据的分布和异常值。
语法
sns.boxplot(x='category', y='value', data=df)
案例
df = pd.read_csv('data.csv')
sns.boxplot(x='region', y='sales', data=df)
plt.title('Sales Distribution by Region')
plt.show()
28. 数据可视化-热力图
使用Seaborn绘制热力图,用于显示数据矩阵的强度。
语法
sns.heatmap(df, annot=True, cmap='YlGnBu')
案例
df = pd.read_csv('data.csv')
corr_matrix = df.corr()
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
plt.title('Correlation Heatmap')
plt.show()
29. 数据可视化-小提琴图
使用Seaborn绘制小提琴图,用于显示数据分布的密度。
语法
sns.violinplot(x='category', y='value', data=df)
案例
df = pd.read_csv('data.csv')
sns.violinplot(x='region', y='sales', data=df)
plt.title('Sales Distribution by Region')
plt.show()
30. 数据可视化-配对图
使用Seaborn绘制配对图,用于显示多个变量之间的关系。
语法
sns.pairplot(df)
案例
df = pd.read_csv('data.csv')
sns.pairplot(df[['age', 'height', 'weight']])
plt.show()
31. 数据标准化
对数据进行标准化处理,使其均值为0,标准差为1。
语法
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaled_data = scaler.fit_transform(df[['column']])
案例
from sklearn.preprocessing import StandardScaler
df = pd.read_csv('data.csv')
scaler = StandardScaler()
df[['scaled_column']] = scaler.fit_transform(df[['column']])
print(df.head())
32. 数据归一化
对数据进行归一化处理,将数据缩放到[0, 1]区间。
语法
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
normalized_data = scaler.fit_transform(df[['column']])
案例
from sklearn.preprocessing import MinMaxScaler
df = pd.read_csv('data.csv')
scaler = MinMaxScaler()
df[['normalized_column']] = scaler.fit_transform(df[['column']])
print(df.head())
33. 数据拆分-训练集与测试集
将数据集拆分为训练集和测试集,用于模型训练和评估。
语法
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
案例
from sklearn.model_selection import train_test_split
df = pd.read_csv('data.csv')
X = df[['feature1', 'feature2']]
y = df['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
print(X_train.shape, X_test.shape)
34. 特征选择
选择对模型预测最有用的特征。
语法
from sklearn.feature_selection import SelectKBest, f_classif
selector = SelectKBest(score_func=f_classif, k=2)
fit = selector.fit(X, y)
案例
from sklearn.feature_selection import SelectKBest, f_classif
df = pd.read_csv('data.csv')
X = df[['feature1', 'feature2', 'feature3']]
y = df['target']
selector = SelectKBest(score_func=f_classif, k=2)
fit = selector.fit(X, y)
selected_features = fit.transform(X)
print(selected_features[:5])
35. 特征编码-独热编码
将分类特征转换为独热编码格式。
语法
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder()
encoded_data = encoder.fit_transform(df[['category']]).toarray()
案例
from sklearn.preprocessing import OneHotEncoder
df = pd.read_csv('data.csv')
encoder = OneHotEncoder()
encoded_data = encoder.fit_transform(df[['category']]).toarray()
print(encoded_data[:5])
36. 特征编码-标签编码
将分类特征转换为整数标签。
语法
from sklearn.preprocessing import LabelEncoder
encoder = LabelEncoder()
encoded_labels = encoder.fit_transform(df['category'])
案例
from sklearn.preprocessing import LabelEncoder
df = pd.read_csv('data.csv')
encoder = LabelEncoder()
df['encoded_category'] = encoder.fit_transform(df['category'])
print(df.head())
37. 数据降维-PCA
使用主成分分析(PCA)进行数据降维。
语法
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
reduced_data = pca.fit_transform(df)
案例
from sklearn.decomposition import PCA
df = pd.read_csv('data.csv')
pca = PCA(n_components=2)
reduced_data = pca.fit_transform(df[['feature1', 'feature2', 'feature3']])
print(reduced_data[:5])
38. 数据分桶
将连续数据分成离散的区间或“桶”。
语法
pd.cut(df['column'], bins=3)
案例
df = pd.read_csv('data.csv')
df['binned_column'] = pd.cut(df['value'], bins=[0, 50, 100, 150])
print(df.head())
39. 数据插值
使用插值方法填补缺失值。
语法
df.interpolate(method='linear')
案例
df = pd.read_csv('data.csv')
df['value'] = df['value'].interpolate(method='linear')
print(df.head())
40. 数据合并-连接
将多个DataFrame通过索引或列进行连接。
语法
pd.concat([df1, df2], axis=1)
案例
df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
concat_df = pd.concat([df1, df2], axis=1)
print(concat_df.head())
41. 数据合并-连接
将多个DataFrame通过特定的列进行连接。
语法
pd.merge(df1, df2, on='key')
案例
df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
merged_df = pd.merge(df1, df2, on='id')
print(merged_df.head())
42. 数据转换-堆叠
将DataFrame的列转换为行。
语法
df.stack()
案例
df = pd.read_csv('data.csv')
stacked_df = df.stack()
print(stacked_df.head())
43. 数据转换-拆分
将DataFrame的行转换为列。
语法
df.unstack()
案例
df = pd.read_csv('data.csv')
unstacked_df = df.unstack()
print(unstacked_df.head())
44. 数据清洗-去除空白字符
去除DataFrame中字符串数据的前后空白字符。
语法
df['column'] = df['column'].str.strip()
案例
df = pd.read_csv('data.csv')
df['name'] = df['name'].str.strip()
print(df.head())
45. 数据清洗-字符替换
在字符串数据中替换特定字符。
语法
df['column'] = df['column'].str.replace('old_value', 'new_value')
案例
df = pd.read_csv('data.csv')
df['address'] = df['address'].str.replace('Street', 'St.')
print(df.head())
46. 数据清洗-正则表达式提取
使用正则表达式从字符串中提取匹配的模式。
语法
df['column'] = df['column'].str.extract(r'pattern')
案例
df = pd.read_csv('data.csv')
df['phone_number'] = df['contact'].str.extract(r'\d{3}-\d{3}-\d{4}')
print(df.head())
47. 数据清洗-字符串分割
将字符串数据按指定分隔符分割成多个列。
语法
df[['column1', 'column2']] = df['column'].str.split('delimiter', expand=True)
案例
df = pd.read_csv('data.csv')
df[['first_name', 'last_name']] = df['full_name'].str.split(' ', expand=True)
print(df.head())
48. 数据处理-日期解析
将字符串转换为日期时间格式。
语法
df['date_column'] = pd.to_datetime(df['date_column'])
案例
df = pd.read_csv('data.csv')
df['date'] = pd.to_datetime(df['date'])
print(df.head())
49. 数据处理-日期提取
从日期时间列中提取年、月、日等信息。
语法
df['year'] = df['date_column'].dt.year
df['month'] = df['date_column'].dt.month
案例
df = pd.read_csv('data.csv')
df['date'] = pd.to_datetime(df['date'])
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
print(df.head())
50. 数据处理-时间差计算
计算两个日期之间的时间差。
语法
df['time_diff'] = df['end_date'] - df['start_date']
案例
df = pd.read_csv('data.csv')
df['start_date'] = pd.to_datetime(df['start_date'])
df['end_date'] = pd.to_datetime(df['end_date'])
df['time_diff'] = df['end_date'] - df['start_date']
print(df.head())
51. 数据处理-滚动窗口
对DataFrame进行滚动窗口计算。
语法
df['rolling_mean'] = df['column'].rolling(window=3).mean()
案例
df = pd.read_csv('data.csv')
df['rolling_mean'] = df['sales'].rolling(window=7).mean()
print(df.head())
52. 数据处理-滑动窗口
对DataFrame进行滑动窗口计算,用于计算滑动统计量。
语法
df['moving_avg'] = df['column'].rolling(window=7).mean()
案例
df = pd.read_csv('data.csv')
df['moving_avg'] = df['temperature'].rolling(window=7).mean()
print(df.head())
53. 数据处理-分组统计
对DataFrame按指定列进行分组并计算统计量。
语法
df.groupby('column').agg({'value_column': 'mean'})
案例
df = pd.read_csv('data.csv')
grouped_df = df.groupby('department').agg({'salary': 'mean', 'bonus': 'sum'})
print(grouped_df)
54. 数据处理-数据透视表
使用数据透视表进行数据汇总和分析。
语法
df.pivot_table(values='value_column', index='index_column', columns='columns_column', aggfunc='mean')
案例
df = pd.read_csv('data.csv')
pivot_table = df.pivot_table(values='sales', index='region', columns='product', aggfunc='sum')
print(pivot_table)
55. 数据处理-堆叠数据
将DataFrame的列数据堆叠到行中。
语法
df_stacked = df.stack()
案例
df = pd.read_csv('data.csv')
df_stacked = df.stack()
print(df_stacked.head())
56. 数据处理-解除堆叠
将堆叠的数据恢复到原来的列结构。
语法
df_unstacked = df.unstack()
案例
df = pd.read_csv('data.csv')
df_stacked = df.stack()
df_unstacked = df_stacked.unstack()
print(df_unstacked.head())
57. 数据处理-数据透视表
创建数据透视表以总结数据。
语法
pd.pivot_table(df, values='value_column', index='index_column', columns='columns_column', aggfunc='mean')
案例
df = pd.read_csv('data.csv')
pivot_table = pd.pivot_table(df, values='sales', index='region', columns='product', aggfunc='sum')
print(pivot_table)
58. 数据处理-序列化存储
将DataFrame序列化并存储到文件中。
语法
df.to_pickle('filename.pkl')
案例
df = pd.read_csv('data.csv')
df.to_pickle('data.pkl')
59. 数据处理-从序列化读取
从序列化文件中读取DataFrame。
语法
df = pd.read_pickle('filename.pkl')
案例
df = pd.read_pickle('data.pkl')
print(df.head())
60. 数据处理-合并数据
将多个DataFrame通过列或行进行合并。
语法
pd.concat([df1, df2], axis=0)
案例
df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
combined_df = pd.concat([df1, df2], axis=0)
print(combined_df.head())
61. 数据处理-多表连接
将多个DataFrame通过键进行连接。
语法
pd.merge(df1, df2, on='key')
案例
df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
merged_df = pd.merge(df1, df2, on='id')
print(merged_df.head())
62. 数据处理-插入列
向DataFrame中插入新列。
语法
df['new_column'] = values
案例
df = pd.read_csv('data.csv')
df['new_column'] = df['existing_column'] * 2
print(df.head())
63. 数据处理-删除列
从DataFrame中删除列。
语法
df.drop(columns=['column_name'], inplace=True)
案例
df = pd.read_csv('data.csv')
df.drop(columns=['unnecessary_column'], inplace=True)
print(df.head())
64. 数据处理-填充缺失值
填充DataFrame中的缺失值。
语法
df.fillna(value, inplace=True)
案例
df = pd.read_csv('data.csv')
df.fillna(0, inplace=True)
print(df.head())
65. 数据处理-替换值
用指定值替换DataFrame中的特定值。
语法
df.replace(to_replace, value, inplace=True)
案例
df = pd.read_csv('data.csv')
df.replace({'A': 1, 'B': 2}, inplace=True)
print(df.head())
66. 数据处理-删除行
根据条件删除DataFrame中的行。
语法
df.drop(index=indices, inplace=True)
案例
df = pd.read_csv('data.csv')
df.drop(df[df['value'] < 0].index, inplace=True)
print(df.head())
67. 数据处理-重置索引
重置DataFrame的索引,恢复到默认整数索引。
语法
df.reset_index(drop=True, inplace=True)
案例
df = pd.read_csv('data.csv')
df = df[df['value'] > 0]
df.reset_index(drop=True, inplace=True)
print(df.head())
68. 数据处理-排序
对DataFrame按指定列进行排序。
语法
df.sort_values(by='column', ascending=True, inplace=True)
案例
df = pd.read_csv('data.csv')
df.sort_values(by='value', ascending=False, inplace=True)
print(df.head())
69. 数据处理-合并多个数据源
将多个DataFrame合并成一个数据源。
语法
df = pd.concat([df1, df2, df3], ignore_index=True)
案例
df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
df3 = pd.read_csv('data3.csv')
combined_df = pd.concat([df1, df2, df3], ignore_index=True)
print(combined_df.head())
70. 数据处理-汇总统计
计算DataFrame的汇总统计信息。
语法
df.describe()
案例
df = pd.read_csv('data.csv')
print(df.describe())
71. 数据处理-唯一值
获取DataFrame列中的唯一值。
语法
df['column'].unique()
案例
df = pd.read_csv('data.csv')
unique_values = df['category'].unique()
print(unique_values)
72. 数据处理-计数
计算DataFrame列中每个唯一值的计数。
语法
df['column'].value_counts()
案例
df = pd.read_csv('data.csv')
value_counts = df['category'].value_counts()
print(value_counts)
73. 数据处理-自定义函数应用
对DataFrame应用自定义函数。
语法
df['column'] = df['column'].apply(custom_function)
案例
def custom_function(x):
return x * 2
df = pd.read_csv('data.csv')
df['doubled_value'] = df['value'].apply(custom_function)
print(df.head())
74. 数据处理-分组计算
对分组数据进行聚合计算。
语法
df.groupby('group_column').agg({'value_column': 'sum'})
案例
df = pd.read_csv('data.csv')
grouped_df = df.groupby('department').agg({'salary': 'mean', 'bonus': 'sum'})
print(grouped_df)
75. 数据处理-合并和汇总
将多个数据集合并后进行汇总计算。
语法
df_combined = pd.merge(df1, df2, on='key')
df_summary = df_combined.groupby('group_column').agg({'value_column': 'sum'})
案例
df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
df_combined = pd.merge(df1, df2, on='id')
df_summary = df_combined.groupby('region').agg({'sales': 'sum'})
print(df_summary)
76. 数据处理-数据类型转换
将DataFrame的列数据类型转换为指定类型。
语法
df['column'] = df['column'].astype(dtype)
案例
df = pd.read_csv('data.csv')
df['value'] = df['value'].astype(float)
print(df.dtypes)
77. 数据处理-处理时间序列
对时间序列数据进行处理,如重采样、频率转换等。
语法
df.resample('M').mean()
案例
df = pd.read_csv('data.csv', parse_dates=['date'])
df.set_index('date', inplace=True)
monthly_avg = df.resample('M').mean()
print(monthly_avg)
78. 数据处理-降维
对数据进行降维处理,如使用PCA进行降维。
语法
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
reduced_data = pca.fit_transform(df[['feature1', 'feature2']])
案例
from sklearn.decomposition import PCA
df = pd.read_csv('data.csv')
pca = PCA(n_components=2)
reduced_data = pca.fit_transform(df[['feature1', 'feature2', 'feature3']])
print(reduced_data[:5])
79. 数据处理-处理类别特征
将类别特征转换为数值特征以用于建模。
语法
df['category'] = pd.get_dummies(df['category'])
案例
df = pd.read_csv('data.csv')
df = pd.get_dummies(df, columns=['category'])
print(df.head())
80. 数据处理-多重填充
对缺失值进行多重填充。
语法
df.fillna(method='ffill', inplace=True)
df.fillna(method='bfill', inplace=True)
案例
df = pd.read_csv('data.csv')
df.fillna(method='ffill', inplace=True) # 前向填充
df.fillna(method='bfill', inplace=True) # 后向填充
print(df.head())
81. 数据处理-特征选择
选择对模型最有用的特征。
语法
from sklearn.feature_selection import SelectKBest, f_classif
selector = SelectKBest(score_func=f_classif, k=5)
fit = selector.fit(X, y)
selected_features = fit.transform(X)
案例
from sklearn.feature_selection import SelectKBest, f_classif
df = pd.read_csv('data.csv')
X = df[['feature1', 'feature2', 'feature3']]
y = df['target']
selector = SelectKBest(score_func=f_classif, k=2)
fit = selector.fit(X, y)
selected_features = fit.transform(X)
print(selected_features[:5])
82. 数据处理-处理异常值
识别和处理数据中的异常值。
语法
df = df[df['value'] < threshold]
案例
df = pd.read_csv('data.csv')
df = df[df['value'] < 100] # 假设100是异常值的阈值
print(df.head())
83. 数据处理-对数转换
对数据进行对数转换以减少偏斜。
语法
df['log_value'] = df['value'].apply(lambda x: np.log(x + 1))
案例
import numpy as np
df = pd.read_csv('data.csv')
df['log_value'] = df['value'].apply(lambda x: np.log(x + 1))
print(df.head())
84. 数据处理-标准化
对数据进行标准化处理,将其转换为均值为0,标准差为1的分布。
语法
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaled_data = scaler.fit_transform(df[['value']])
案例
from sklearn.preprocessing import StandardScaler
df = pd.read_csv('data.csv')
scaler = StandardScaler()
df[['scaled_value']] = scaler.fit_transform(df[['value']])
print(df.head())
85. 数据处理-归一化
对数据进行归一化处理,将其值缩放到指定的范围,通常是[0, 1]。
语法
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
normalized_data = scaler.fit_transform(df[['value']])
案例
from sklearn.preprocessing import MinMaxScaler
df = pd.read_csv('data.csv')
scaler = MinMaxScaler()
df[['normalized_value']] = scaler.fit_transform(df[['value']])
print(df.head())
86. 数据处理-分箱
将连续数据分割成离散的区间(箱)。
语法
df['binned_column'] = pd.cut(df['value'], bins=3)
案例
df = pd.read_csv('data.csv')
df['binned_value'] = pd.cut(df['value'], bins=[0, 10, 20, 30])
print(df.head())
87. 数据处理-离群值检测
使用统计方法检测数据中的离群值。
语法
from scipy import stats
df['z_score'] = stats.zscore(df['value'])
outliers = df[df['z_score'].abs() > 3]
案例
from scipy import stats
df = pd.read_csv('data.csv')
df['z_score'] = stats.zscore(df['value'])
outliers = df[df['z_score'].abs() > 3]
print(outliers)
88. 数据处理-数据转换
对数据进行各种转换,如对数转换、平方根转换等。
语法
df['log_value'] = np.log(df['value'] + 1)
df['sqrt_value'] = np.sqrt(df['value'])
案例
import numpy as np
df = pd.read_csv('data.csv')
df['log_value'] = np.log(df['value'] + 1)
df['sqrt_value'] = np.sqrt(df['value'])
print(df.head())
89. 数据处理-填充前向和后向
使用前向填充和后向填充方法处理缺失值。
语法
df.fillna(method='ffill', inplace=True) # 前向填充
df.fillna(method='bfill', inplace=True) # 后向填充
案例
df = pd.read_csv('data.csv')
df.fillna(method='ffill', inplace=True) # 前向填充
df.fillna(method='bfill', inplace=True) # 后向填充
print(df.head())
90. 数据处理-窗口函数
使用窗口函数对数据进行滚动计算,如计算移动平均。
语法
df['rolling_mean'] = df['value'].rolling(window=3).mean()
案例
df = pd.read_csv('data.csv')
df['rolling_mean'] = df['value'].rolling(window=7).mean()
print(df.head())
91. 数据处理-累积和
计算累积和或累积产品。
语法
df['cumsum'] = df['value'].cumsum()
df['cumprod'] = df['value'].cumprod()
案例
df = pd.read_csv('data.csv')
df['cumsum'] = df['value'].cumsum()
df['cumprod'] = df['value'].cumprod()
print(df.head())
92. 数据处理-多重索引
创建和处理多重索引的DataFrame。
语法
df.set_index(['level1', 'level2'], inplace=True)
案例
df = pd.read_csv('data.csv')
df.set_index(['region', 'product'], inplace=True)
print(df.head())
93. 数据处理-重塑数据
改变DataFrame的形状,如使用melt和pivot方法。
语法
df_melted = pd.melt(df, id_vars=['id'], value_vars=['value1', 'value2'])
df_pivot = df_melted.pivot(index='id', columns='variable', values='value')
案例
df = pd.read_csv('data.csv')
df_melted = pd.melt(df, id_vars=['id'], value_vars=['value1', 'value2'])
df_pivot = df_melted.pivot(index='id', columns='variable', values='value')
print(df_pivot.head())
94. 数据处理-数据抽样
从DataFrame中随机抽取样本数据。
语法
df_sample = df.sample(n=5)
df_sample = df.sample(frac=0.1)
案例
df = pd.read_csv('data.csv')
df_sample = df.sample(n=10)
print(df_sample)
95. 数据处理-数据填充
用指定的值或方法填充DataFrame中的缺失值。
语法
df.fillna(value=0, inplace=True)
案例
df = pd.read_csv('data.csv')
df.fillna(value={'value': 0}, inplace=True)
print(df.head())
96. 数据处理-数据排序
对DataFrame的数据按指定列进行排序。
语法
df.sort_values(by='column', ascending=False, inplace=True)
案例
df = pd.read_csv('data.csv')
df.sort_values(by='value', ascending=True, inplace=True)
print(df.head())
97. 数据处理-数据重命名
重命名DataFrame的列。
语法
df.rename(columns={'old_name': 'new_name'}, inplace=True)
案例
df = pd.read_csv('data.csv')
df.rename(columns={'value': 'new_value'}, inplace=True)
print(df.head())
98. 数据处理-计算累计百分比
计算数据的累计百分比。
语法
df['cumulative_percentage'] = df['value'].cumsum() / df['value'].sum() * 100
案例
df = pd.read_csv('data.csv')
df['cumulative_percentage'] = df['value'].cumsum() / df['value'].sum() * 100
print(df.head())
99. 数据处理-数据合并
将多个DataFrame合并成一个数据集。
语法
df_combined = pd.concat([df1, df2], axis=0, ignore_index=True)
案例
df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
df_combined = pd.concat([df1, df2], axis=0, ignore_index=True)
print(df_combined.head())
100. 数据处理-日期和时间操作
处理日期和时间数据,包括转换、提取等操作。
语法
df['date'] = pd.to_datetime(df['date'])
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
案例
df = pd.read_csv('data.csv')
df['date'] = pd.to_datetime(df['date'])
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
print(df.head())
这些是数据分析过程中常用的核心Python操作,大家可以收藏起来,用的时候翻出来看看~
相关推荐
-
- 驱动网卡(怎么从新驱动网卡)
-
网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...
-
2026-01-30 00:37 liuian
- win10更新助手装系统(微软win10更新助手)
-
1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...
- windows11专业版密钥最新(windows11专业版激活码永久)
-
Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...
-
- 手机删过的软件恢复(手机删除过的软件怎么恢复)
-
操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...
-
2026-01-29 23:55 liuian
- 一键ghost手动备份系统步骤(一键ghost 备份)
-
步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。 步骤...
- 怎么创建局域网(怎么创建局域网打游戏)
-
1、购买路由器一台。进入路由器把dhcp功能打开 2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。 3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...
- 精灵驱动器官方下载(精灵驱动手机版下载)
-
是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...
- 一键还原系统步骤(一键还原系统有哪些)
-
1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。 2、在弹出的“准备安装”窗口中,可...
- 电脑加速器哪个好(电脑加速器哪款好)
-
我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...
- 任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)
-
是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...
- u盘怎么恢复文件(u盘文件恢复的方法)
-
开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...
- 系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)
-
1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...
-
- 剪贴板权限设置方法(剪贴板访问权限)
-
1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...
-
2026-01-29 21:37 liuian
- 平板系统重装大师(平板重装win系统)
-
如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...
- 联想官网售后服务网点(联想官网售后服务热线)
-
联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
