数据合并
数据准备
首先定义一个 DataFrame 数据集:
import pandas as pd df_a = pd.DataFrame(columns=['name', 'rank'], data=[['C', 1], ['java', 2], ['python', 3], ['golang', 4]]) df_b = pd.DataFrame(columns=['name', 'year'], data=[['java', 2020], ['python', 2021], ['golang', 2022]])
通过 merge() 方法能对DataFrame数据集进行合并,通过内连接、外连接、左连接、右连接等方式,如下实例:
merge方法默认是内连接取交集,通过 how 指定连接类型,on 指定连接字段
# 通过指定 columns 中的 name 内连接 df_tmp = pd.merge(df_a, df_b, on='name', how='outer') print(df_tmp) # ========打印======== name rank year 0 java 2 2020 1 python 3 2021 2 golang 4 2022
# 通过指定 columns 中的 name 左连接 df_tmp = pd.merge(df_a, df_b, on='name', how='left') print(df_tmp) # ========打印======== name rank year 0 C 1 NaN 1 java 2 2020.0 2 python 3 2021.0 3 golang 4 2022.0
# 通过指定 columns 中的 name 右连接 df_tmp = pd.merge(df_a, df_b, on='name', how='right') print(df_tmp) # ========打印======== name rank year 0 java 2 2020 1 python 3 2021 2 golang 4 2022
# 如果合并两个 DataFrame 不含公共的 columns ,可以直接指定匹配的字段 df_c = pd.DataFrame(columns=['name1', 'year'], data=[['java', 2020], ['python1', 2021], ['golang1', 2022]]) df_tmp = pd.merge(df_a, df_c, left_on='name', right_on='name1') print(df_tmp) # ========打印======== name rank name1 year 0 java 2 java 2020
数据分组
数据准备
首先定义一个 DataFrame 数据集:
import pandas as pd df_a = pd.DataFrame(columns=['name', 'nums'], data=[['python', 1], ['java', 2], ['python', 3], ['java', 4]])
通过 group() 方法能对DataFrame数据集进行分组操作,分组后还能进行求和、取平均值等操作,如下实例:
# 获取分组后的数据集中每个数据的数量 df_tmp = df_a.groupby('name').size() print(df_tmp) # ========打印======== name java 2 python 2 dtype: int64
# 将分组后的数据集,根据 nums 字段进行求和 df_tmp = df_a.groupby('name')['nums'].sum() print(df_tmp) # ========打印======== name java 6 python 4 Name: nums, dtype: int64
# 获取分组后的数据集的大小 df_tmp = df_a.groupby('name').size() print(df_tmp) # ========打印======== name java 3 python 2 Name: nums, dtype: int64
数据拆分
数据准备
首先定义一个 DataFrame 数据集:
import pandas as pd df_a = pd.DataFrame(columns=['name', 'rank'], data=[['C_no1', 1], ['java_no2', 2], ['python_no3', 3], ['golang', 4]])
通过 split() 方法能对DataFrame数据集中某列数据进行拆分操作,如下实例:
# 数据拆分,对 columns 中的某列的数据某个符号匹配拆分,expand:为True可以直接将分列后的结果转换成DataFrame df_tmp = df_a['name'].str.split('_', 1, expand=True) print(df_tmp) # ========打印======== 0 1 0 C no1 1 java no2 2 python no3 3 golang None
# 数据拆分,对拆分后的数据再次与原数据合并 df_tmp = pd.merge(df_a, df_a['name'].str.split('_', 1, expand=True), how='left', left_index=True, right_index=True) print(df_tmp) # ========打印======== name rank 0 1 0 C_no1 1 C no1 1 java_no2 2 java no2 2 python_no3 3 python no3 3 golang 4 golang None
数据可视化
在使用 Pandas 处理数据的过程中,为了更直观的展示数据的线性关系,我们可以引入 matplotlib 库将我们的数据变成相关图形
# plot() 方法生成相应的线性图形 df_a = pd.DataFrame(columns=['name', 'rank'], data=[['C_no1', 1], ['java_no2', 2], ['python_no3', 3], ['golang', 4]]) df_a.plot()
以上就是成品app直播源码搭建,常用数据处理手段代码分析, 更多内容欢迎关注之后的文章