Pandas 的合并 concat 和append以及 merge与简单画图

本文介绍使用 Python 的 Pandas 库进行数据操作的方法,包括 DataFrame 的创建、数据的纵向合并、基于列和行的连接等核心操作,并展示了如何通过简单的代码实现数据的高效管理和分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import pandas as pd
import  numpy as np
s1 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'])

s2 = pd.DataFrame(np.ones((3,4))*1,columns=['a','b','c','d'])

s3 = pd.DataFrame(np.ones((3,4))*2,columns=['a','b','c','d'])

print(s1)
print(s2)
print(s3)

#纵向合并 s1,s2,s3
# method 01: 对应的columns 和 index一样
res= pd.concat([s1,s2,s3],axis=0,ignore_index=True)#默认相当于jion(outer)

print(res)

#method 02: 对应的columns不一样

s4 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','e'],index=[1,2,3])
s5 = pd.DataFrame(np.ones((3,4))*1,columns=['a','b','c','d'],index=[2,3,4])

res2= pd.concat([s4,s5],axis=0,join='inner',ignore_index=True) #只把匹配的部分合并返回
print(res2)

#method 03: 对应的 index不一样

res3= pd.concat([s4,s5],axis=1,join_axes=[s4.index]) #按照某个index处理
print(res3)

print("_"*20)
#利用append进行数据添加
print(s1)
print("_"*20)
#添加另外的DF
ress = s1.append(s2,ignore_index=True)  #这个 append时候, 不改变s1的值
print(ress)
#添加一条数据
s3=s1.append(pd.Series([2,2,2,2],index=['a','b','c','d']),ignore_index=True)
print(s3)
import pandas as pd
import numpy as np


left = pd.DataFrame({'key':['K0','K1','K2','K3'],
                     'A':['A0','A1','A2','A3'],
                     'B':['B0','B1','B2','B3']},
                    index=['a','b','c','d'])



right = pd.DataFrame({'key':['K0','K1','K2','K3'],
                     'C':['C0','C1','C2','C3'],
                     'D':['D0','D1','D2','D3']},
                     index=['e','f','c','d'])


print(left)
print(right)
print('-'*10)
#基于cloumn 连接, on也可以是一个key的列表
res =  pd.merge(left,right,on='key')  
print(res)
#基于row连接,可以选择是否考虑left_index和right_index

res1=pd.merge(left,right,left_index=True,right_index=True,how="outer")

res2=pd.merge(left,right,left_index=True,right_index=True,how="inner")
print(res1)
print(res2)
__author__ = "Luke Liu"

import  numpy as np
import  pandas as pd
import  matplotlib.pyplot as plt


data1= pd.Series(np.random.randn(1000),
                 index=np.arange(1000))


data2=pd.DataFrame(np.random.randn(1000,4),
                   index=np.arange(1000),
                   columns=['a','b','c','d'])
data = data2.cumsum() #进行数据累加计算
data.plot()
# ax = data.plot.scatter(x='a',y='b',c='r',label='class1')
# bx=data.plot.scatter(x='a',y='c',c='blue',label='class2',ax=ax)
# data.plot.scatter(x='a',y='b',c='g',label='class3',ax=bx)
plt.show()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值