Python中有许多流行的统计分析库,下面是其中一些主要的库及其主要用法:
这些库的用法可以根据具体需求而异,可以通过官方文档、教程和示例来学习和了解各个库的更多用法和功能。
----------------
数据结构:
数据清洗:
数据重塑:
数据聚合和分组:
数据合并和连接:
时间序列处理:
数据可视化:
Pandas提供了丰富的函数和方法来支持这些用法,同时还具备高性能和灵活性,使得数据操作和分析变得更加便捷和高效
import pandas as pd
# 创建Series
data = [1, 2, 3, 4, 5]
s = pd.Series(data)
# 选择数据
print(s[2]) # 获取索引为2的元素
print(s[1:4]) # 获取索引1到3的元素
import pandas as pd
# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
# 选择数据
print(df['Name']) # 获取Name列
print(df.loc[1]) # 获取索引为1的行数据
import pandas as pd
# 创建包含缺失值的DataFrame
data = {'A': [1, 2, None, 4],
'B': [5, None, 7, 8]}
df = pd.DataFrame(data)
# 填充缺失值
df.fillna(0, inplace=True)
print(df)
# 删除包含缺失值的行
df.dropna(inplace=True)
print(df)
import pandas as pd
# 创建DataFrame
data = {'City': ['New York', 'London', 'Paris', 'London', 'Paris'],
'Year': [2020, 2020, 2020, 2021, 2021],
'Sales': [100, 200, 150, 300, 250]}
df = pd.DataFrame(data)
# 创建数据透视表
pivot_table = pd.pivot_table(df, values='Sales', index='City', columns='Year', aggfunc='sum')
print(pivot_table)
import pandas as pd
# 创建DataFrame
data = {'City': ['New York', 'London', 'Paris', 'London', 'Paris'],
'Year': [2020, 2020, 2020, 2021, 2021],
'Sales': [100, 200, 150, 300, 250]}
df = pd.DataFrame(data)
# 分组聚合操作
grouped = df.groupby('City').agg({'Sales': 'sum', 'Year': 'mean'})
print(grouped)
import pandas as pd
# 创建DataFrame
data1 = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]}
data2 = {'Name': ['Bob', 'Charlie', 'Dave'],
'City': ['London', 'Paris', 'Berlin']}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
# 合并DataFrame
merged = pd.merge(df1, df2, on='Name')
print(merged)
import pandas as pd
import matplotlib.pyplot as plt
# 创建DataFrame
data = {'Year': [2018, 2019, 2020, 2021],
'Sales': [100, 200, 150, 300]}
df = pd.DataFrame(data)
# 绘制线图
df.plot(x='Year', y='Sales', kind='line')
plt.show()
import pandas as pd
# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
# 根据条件选择行
selected_rows = df[df['Age'] > 30]
print(selected_rows)
# 根据条件选择列
selected_columns = df[['Name', 'City']]
print(selected_columns)
import pandas as pd
# 创建包含缺失值的DataFrame
data = {'A': [1, None, 3, None],
'B': [5, 6, None, 8]}
df = pd.DataFrame(data)
# 填充缺失值
df_filled = df.fillna(0) # 使用0填充缺失值
print(df_filled)
# 删除包含缺失值的行
df_dropped = df.dropna() # 删除包含缺失值的行
print(df_dropped)
# 使用插值方法填充缺失值
df_interpolated = df.interpolate() # 使用插值方法填充缺失值
print(df_interpolated)
import pandas as pd
# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 200, 35], # 包含异常值
'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
# 识别异常值
outliers = df[df['Age'] > 100]
print(outliers)
# 处理异常值
df.loc[df['Age'] > 100, 'Age'] = 30 # 将异常值替换为特定值
print(df)
import pandas as pd
# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
# 应用函数
df['Age'] = df['Age'].apply(lambda x: x * 2) # 将Age列的值乘以2
print(df)
# 映射值
mapping = {'New York': 'USA', 'London': 'UK', 'Paris': 'France'}
df['Country'] = df['City'].map(mapping) # 根据City列映射出Country列的值
print(df)
# 替换值
df['City'] = df['City'].replace('New York', 'NY') # 将City列中的'New York'替换为'NY'
print(df)
# 重命名列
df.rename(columns={'Name': 'FullName'}, inplace=True) # 将Name列重命名为FullName
print(df)
import pandas as pd
# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
# 根据条件选择行
selected_rows = df[df['Age'] > 25] # 选择Age列大于25的行
print(selected_rows)
# 根据条件选择列
selected_columns = df[['Name', 'City']] # 选择Name列和City列
print(selected_columns)
# 使用loc和iloc选择行和列
selected_rows = df.loc[df['Age'] > 25] # 使用loc选择满足条件的行
print(selected_rows)
selected_columns = df.loc[:, ['Name', 'City']] # 使用loc选择指定的列
print(selected_columns)
selected_rows = df.iloc[[0, 2]] # 使用iloc选择指定的行
print(selected_rows)
selected_columns = df.iloc[:, [0, 2]] # 使用iloc选择指定的列
print(selected_columns)
在这个示例中,我们使用了条件选择和标签选择的两种方法。使用条件选择时,我们可以通过指定条件,例如df['Age'] > 25
,来选择满足条件的行。使用标签选择时,我们可以使用方括号[]
选择指定的列,例如df[['Name', 'City']]
。此外,还可以使用loc
和iloc
方法选择行和列,其中loc
使用标签进行选择,iloc
使用索引位置进行选择。
import pandas as pd
# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
# 根据条件选择行
selected_rows = df[df['Age'] > 25]
print(selected_rows)
# 输出:
# Name Age City
# 1 Bob 30 London
# 2 Charlie 35 Paris
# 根据条件选择多个条件的行
selected_rows_multiple_conditions = df[(df['Age'] > 25) & (df['City'] == 'London')]
print(selected_rows_multiple_conditions)
# 输出:
# Name Age City
# 1 Bob 30 London
# 根据标签选择列
selected_columns = df[['Name', 'City']]
print(selected_columns)
# 输出:
# Name City
# 0 Alice New York
# 1 Bob London
# 2 Charlie Paris
import pandas as pd
# 创建包含缺失值的DataFrame
data = {'A': [1, 2, None, 4],
'B': [5, None, 7, 8]}
df = pd.DataFrame(data)
# 填充缺失值
df_filled = df.fillna(0) # 使用0填充缺失值
print(df_filled)
# 输出:
# A B
# 0 1.0 5.0
# 1 2.0 0.0
# 2 0.0 7.0
# 3 4.0 8.0
# 删除包含缺失值的行
df_dropped = df.dropna() # 删除包含缺失值的行
print(df_dropped)
# 输出:
# A B
# 0 1.0 5.0
# 插值处理缺失值
df_interpolated = df.interpolate() # 使用插值方法填充缺失值
print(df_interpolated)
# 输出:
# A B
# 0 1.0 5.0
# 1 2.0 6.0
# 2 3.0 7.0
# 3 4.0 8.0
在示例代码中,我们创建了一个包含缺失值的DataFrame。然后我们展示了三种常见的缺失值处理方法:
import pandas as pd
# 创建DataFrame
data = {'Age': [25, 30, 35, 150]}
df = pd.DataFrame(data)
# 识别异常值
outliers = df[(df['Age'] < 0) | (df['Age'] > 100)]
print(outliers)
# 输出:
# Age
# 3 150
# 处理异常值
df['Age'] = df['Age'].clip(lower=0, upper=100) # 将异常值截断为指定范围
print(df)
# 输出:
# Age
# 0 25
# 1 30
# 2 35
# 3 100
在示例代码中,我们创建了一个包含异常值的DataFrame。然后我们展示了两种常见的异常值处理方法: