python如何将两个索引相同的列表的数据合并成一个新列表及绘图注意事项

在进行测试的过程中,我们的样品数量有很多,但是不同的样品测试完就形成了一个独立的文件,不同样品会形成不同的文件,因此,有时在进行数据处理之前,需要将这些数据列表进行合并统一分析,本文上传我的方法:

本文的内容一共分为文件打开,数据合并,数据保存三部分

1 文件打开:

**#打开文件

def open(file_csv):
             df=pd.read_csv(filepath_or_buffer='c:\\Users\\dell\\Desktop\\test.csv',
               header=None,
               encoding='ANSI',
               skiprows=(11))
    return df

为了使程序的的可读性变强,我们选择将功能打包成函数,每个函数只完成一个操作,以上代码的含义是:
定义一个open(file_csv)的函数:
函数的主体就是pd.read_csv()函数,参数是filepath_or_buffer=文件的物理地址,这里可以用相对地址或者绝对地址,只是斜杠的方向不同;
header=None意思读入的表格没有列名,这样方便我们后续自己定义;
encoding="ANSI"这是解码方式,也可以是UTF-8,这要根据具体的文件解码方式来选择;
skiprows=(11)是我选择跳过最开始的10行,因为他们不是我所需要的数据,并且会影响我需要数据的列名排列,因此这里选择跳过他们,这里需要注意:
skiprows=(11)是跳过最开始的0-11行,
skiprows=[0,2,5]是跳过0,2,5共分立的3行;
然后返回表格df

2 数据合并:

#合并数据

def contact(df1,df2):
    df=pd.concat([df1,df2],ignore_index=True)
    return df

定义一个contact()的函数,用来连接df1和df2这两个表格形成一个新的表格,这两个表格拥有相同的索引;
所使用的是pd.concat()函数,这里要特别注意是concat不是contact噢,写错的话会报属性错误:

AttributeError: module 'pandas' has no attribute 'contcat'

[df1,df2]参数包括需要连接的数据对象,可以是列表或者字典,用[ ]括起来;
axis参数表示连接轴的方向,默认是0,沿着 行方向;
join参数表示连接方式,默认是"outer"是两个数据的并集;
ignore_index=True:意思是不沿着连接轴保留索引而产生一段新的索引
效果如下图所示:
df1:

在这里插入图片描述
df2:
在这里插入图片描述
contact(df1,df2)
在这里插入图片描述
代码样子:
在这里插入图片描述

3 数据保存

#数据保存

df_sum.to_csv(path_or_buf='c:\\Users\\dell\\Desktop\\test.csv',index=False)

使用的是保存为csv文件的函数,path_or_buf参数说明保存的地址,index=False使得索引行不在文件中占单独的一行,这样当我们调用该文件进行绘图时就不会出现可恶的unnamed:0行出现干扰
无干扰:

在这里插入图片描述
有干扰:
在这里插入图片描述
由上图对比,可以发现这种unnamed:0列非常影响图像表达效果,要引起注意**

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mr Pydaty

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

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

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

打赏作者

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

抵扣说明:

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

余额充值