pandas处理丢失数据&pandas读取及写入文件&pandas合并

本文介绍了如何使用Python的pandas库进行数据操作,包括数据读取、写入、清洗、合并和处理缺失值。重点展示了DataFrame的创建、合并操作以及常用的数据填充和检查方法,适合数据分析师和初学者参考。
摘要由CSDN通过智能技术生成
import numpy as np
import pandas as pd
dates = np.arange(20170101,20170105)
df1 = pd.DataFrame(np.arange(12).reshape((4,3)),index=dates,
                   columns=['A','B','C'])
df1

在这里插入图片描述

df2 = pd.DataFrame(df1,index=dates,columns=['A','B','C','D','E'])
df2

在这里插入图片描述

s1 = pd.Series([3,4,6],index=dates[:3])
s2 = pd.Series([32,5,2],index=dates[1:])
df2['D'] = s1
df2['E'] = s2
df2

在这里插入图片描述

#把有空的行去掉
df2.dropna(axis=0,how='any')
#axis=[0,1],0代表行,1代表列
#how可以取两个值,any或all,any代表任意一个或多个0,all代表全部

在这里插入图片描述

#把有空的行去掉
df2.dropna(axis=0,how='all')
#axis=[0,1],0代表行,1代表列
#how可以取两个值,any或all,any代表任意一个或多个0,all代表全部为0

在这里插入图片描述

#把有空的列去掉
df2.dropna(axis=1,how='any')
#axis=[0,1],0代表行,1代表列
#how可以取两个值,any或all,any代表任意一个或多个0,all代表全部为0

在这里插入图片描述

df2.fillna(value=0)#表中所有的空值赋值为0

在这里插入图片描述

df2.isnull()#判断是否有空值

在这里插入图片描述

np.any(df2.isnull())
#判断是否有空值,有的话返回true,否返回false

在这里插入图片描述

np.all(df2.isnull())
#所有为空才返回true

在这里插入图片描述
pandas读取及写入文件

file = pd.read_excel('people.xlsx')
file

在这里插入图片描述

file = pd.read_csv('people.csv',encoding='gbk')
file

在这里插入图片描述

file.iloc[2,0] = '深圳' #将第2列第0行改为深圳
file

在这里插入图片描述

file.to_csv('people2.csv')#将文件转为不同的格式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
pandas合并

df1 = pd.DataFrame(np.arange(12).reshape((3,4)),
                   columns=['a','b','c','d'])
df2 = pd.DataFrame(np.arange(12,24).reshape((3,4)),
                   columns=['a','b','c','d'])
df3 = pd.DataFrame(np.arange(24,36).reshape((3,4)),
                   columns=['a','b','c','d'])
print(df1)#为什么写print而不是直接写df1,df2,df3?
print(df2)#因为这样写会覆盖掉,只显示df3
print(df3)

在这里插入图片描述

df4 = pd.concat([df1,df2,df3],axis=0)#axis=0代表纵向合并,行合并
df4

在这里插入图片描述

df4 = pd.concat([df1,df2,df3],axis=0,ignore_index=True)
#axis=0代表纵向合并,行合并
#ignore_index=True表示忽略原来的index属性
df4

在这里插入图片描述

df5 = pd.concat([df1,df2,df3],axis=1)
#axis=1代表横向合并,列合并
df5

在这里插入图片描述

df1 = pd.DataFrame(np.arange(12).reshape((3,4)),
                   columns=['a','b','c','f'])
df2 = pd.DataFrame(np.arange(12,24).reshape((3,4)),
                   columns=['a','b','d','e'])
print(df1)
print(df2)

在这里插入图片描述

df6 = pd.concat([df1,df2],join='outer',ignore_index=True)
#合并两个表,缺少的部分填充none
df6

在这里插入图片描述

df7 = pd.concat([df1,df2],join='inner',ignore_index=True)
#合并两个表共有的部分
df7

在这里插入图片描述

df1 = pd.DataFrame(np.arange(12).reshape((3,4)),
                   columns=['a','b','c','f'])
df2 = pd.DataFrame(np.arange(12,24).reshape((4,3)),
                   columns=['a','c','d'])
print(df1)
print(df2)

在这里插入图片描述

#df8 = pd.concat([df1,df2],axis=1,join_axes=[df1.index])
#横向合并,index使用df1的index
#新版本pandas已经删除了join_axes
#所以习惯了两个dataframe按照同一列合并的话,可以改用merge
df8 = pd.concat([df1,df2],axis=1)#横向合并,列合并
df8

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值