数据可视化--表格融合练习

news/2024/7/8 3:18:32 标签: 可视化, python, 数据分析, 机器学习

数据可视化--表格融合练习

  • pd.merge()函数说明
  • 代码演练
  • 参考书籍

pd.merge()函数说明

使用共有列作为两个数据框数据融合的依据,主要使用pd.merge()函数:

  • 参数说明:
    • left: 传递左表数据
    • right: 传递右表数据
    • how: 数据融合方式
      • left:保留左表的数据
      • right:保留右表的数据
      • inner:保留公共部分的信息
      • outer:保留所有的信息
    • on:列名,共有列
    • left_on:指定左表的某一列用于不同列名合并
    • right_on:指定右表的某一列用于不同列名合并
    • suffixes:保留不同表中同列名数据,用该参数给重复列名增加后缀

代码演练

  • 准备数据
python">import pandas as pd
df1 = pd.DataFrame(dict(x = ["a","b","c"],y = range(1,4))) 
df2 = pd.DataFrame(dict(x = ["a","b","d"], z = [2,5,3]))
df3 = pd.DataFrame(dict(g = ["a","b","d"], z = [2,5,3]))
df4 = pd.DataFrame(dict(x = ["a","b","d"], y = [1,4,2],z = [2,5,3]))
print(df1)
print(df2)
print(df3)
print(df4)
# 执行结果
   x  y
0  a  1
1  b  2
2  c  3
   x  z
0  a  2
1  b  5
2  d  3
   g  z
0  a  2
1  b  5
2  d  3
   x  y  z
0  a  1  2
1  b  4  5
2  d  2  3
  • 只保留左表的数据
python"># 只保留左表的所有数据
print("只保留左表的所有数据")
data_merge1 = pd.merge(left=df1,right=df2,how="left",on="x")
print(data_merge1)
# 执行结果
只保留左表的所有数据
   x  y    z
0  a  1  2.0
1  b  2  5.0
2  c  3  NaN
  • 只保留右表的所有数据
python"># 只保留右表的所有数据
print("只保留右表的所有数据")
data_merge2 = pd.merge(left=df1,right=df2,how="right",on="x")
print(data_merge2)
# 执行结果
只保留右表的所有数据
   x    y  z
0  a  1.0  2
1  b  2.0  5
2  d  NaN  3
  • 只保留两个表中的公共部分信息
python"># 只保留两个表中的公共部分信息
data_merge3 = pd.merge(left=df1,right=df2,how="inner",on="x")
print(data_merge3)
# 执行结果
   x  y  z
0  a  1  2
1  b  2  5
  • 保留两个表中的所有信息
python"># 保留两个表中的所有信息
data_merge4 = pd.merge(left=df1,right=df2,how="outer",on="x")
print(data_merge4)
# 执行结果
   x    y    z
0  a  1.0  2.0
1  b  2.0  5.0
2  c  3.0  NaN
3  d  NaN  3.0
  • on=[“x”,“y”]表示多列匹配
python"># on=["x","y"]表示多列匹配
data_merge5 = pd.merge(left=df1,right=df4,how="left",on=["x","y"])
print(data_merge5)
# 执行结果
   x  y    z
0  a  1  2.0
1  b  2  NaN
2  c  3  NaN
  • 根据不同的列名进行合并数据 left_on = “x”, right_on = “g”,即将列名为x和g的两组数据进行合并
python"># 根据不同的列名进行合并数据  left_on = "x", right_on = "g",即将列名为x和g的两组数据进行合并
data_merge6 = pd.merge(left=df1,right=df3,how="left",left_on="x",right_on="g")
print(data_merge6)
# 执行结果
   x  y    g    z
0  a  1    a  2.0
1  b  2    b  5.0
2  c  3  NaN  NaN
  • 在表合并中,两个表有一列同名,但是值不一样,合并时希望都保留,就可以用suffixes给每个表的重复列名增加后缀(如_1,_2)
python"># 在表合并中,两个表有一列同名,但是值不一样,合并时希望都保留,就可以用suffixes给每个表的重复列名增加后缀(如_1,_2)
data_merge7 = pd.merge(left=df1,right=df4,how="left",on="x",suffixes=["_1","_2"])
print(data_merge7)
# 执行结果
   x  y_1  y_2    z
0  a    1  1.0  2.0
1  b    2  4.0  5.0
2  c    3  NaN  NaN

参考书籍

练习参考的书籍是Python数据可视化之美


http://www.niftyadmin.cn/n/1721983.html

相关文章

练习系列:Python字典:一键对应多值

需求: 遍历文本文件,生成一键对应多值的字典,如下所示: 文本文件内容("\t"分割字符串): “”" A 1 A 2 A 3 B c B d C 4 C 5 C e “”" 目标生成文件格式: target_dict {“A”:[1,2,3…

从分析结果中根据list提取突变信息

# _*_coding:utf-8_*_ # author: 稻田工作者 # date: 2020-06-13"""根据原始样本对应的突变信息从数据分析文件中提取检出结果,如: 原始样本LC-BR3对应的突变信息如下: NM_000245.2:exon14_intron14:c.3028_302816del17:p.? …

bwa mem 报错处理:[mem_sam_pe] paired reads have different names

背景: 从samtools sort 默认排序后的bam文件中提取fastq序列并对其格式化,对格式化后的fastq文件重新比对到参考基因组,报错如下:”[mem_sam_pe] paired reads have different names: “A00575:297:HWHKYDMXX:1:1331:22372:31814…

python windows环境下批量修改文件的创建时间、访问时间、修改时间

引用:https://blog.csdn.net/dengnihuilaiwpl/article/details/86551720 常见的修改文件时间有两种方式: 方式一:修改访问和修改时间; 使用utime函数 方法二:修改创建时间 使用pywin32file库 以下代码可以实现两种…

pip更新时出错pip install --upgrade pip

pip更新时出错pip install --upgrade pip 今天在配置电脑的时候安装anaconda后,在用pip下载包时,照例pip install --upgrade pip更新pip却出现如下错误 这是一个下载解压工具结果安装包是压缩包的烦恼呀。 看论坛里大家众说纷纭,挨个试了试…

pip安装包时ImportError: cannot import name 'main'

使用标准的 pip install packge时出现的错误 解决办法: python -m pip install packge如: python -m pip install numpy

Ubuntu18.04安装NVIDIA 显卡驱动(GTX 1060)

在ubuntu安装NVIDIA驱动是安装Tensorflow中的第一步,比较容易出乱子。指不定哪错了就把ubuntu系统整崩了(卡在开机界面,无法进入图形界面等等)。这里将我自己在ubuntu18.04安装NVIDIA显卡驱动的过程记录下来。给遇到情形跟我一样的…

显卡驱动安装补充

在安装显卡驱动前需要先打开64位ubuntu的32位支持功能 sudo dpkg --add-architecture i386sudo apt updatesudo apt install build-essential libc6:i386