Pandas知识点梳理(二)

本文主要介绍Pandas中的DataFrame数据结构及其操作,包括如何创建DataFrame、查看数据、处理空值、数据合并及内容提取等核心功能。

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

接上一篇博客,接下来重点介绍一下Dataframe
三、DataFrame使用
DataFrame是一种二维的数据结构,非常接近于excel。它的竖行称之为 columns,横行跟前面的 Series 一样,称之为 index,也就是说可以通过 columns 和 index 来确定一个主句的位置。
1、导入
import pandas as pd
2、建立DataFrame
df1=pd.DataFrame(np.random.randn(4,4),index=[‘1’,‘2’,‘3’,‘4’],columns=[‘a’,‘b’,‘c’,‘d’])
df1
a b c d
1 -1.053798 1.362923 -0.123380 0.597046
2 0.371526 0.641591 1.330379 -0.048088
3 -0.729223 -0.748537 -1.048205 -0.798209
4 -2.357540 -0.650935 1.093724 -1.824537
或者用嵌套字典的方式
newdata = {‘lang’:{‘first’:‘python’,‘second’:‘java’},‘price’:{‘first’:5000,‘second’:2000}}
df2 = pd.DataFrame(newdata)
df2
lang price
first python 5000
second java 2000

3、DataFrame操作
df = pd.DataFrame({“id”:[1,2,3,4,5,6],
“date”:pd.date_range(‘20130102’, periods=6),
“city”:['Beijing ', ‘SH’, ’ guangzhou ', ‘Shenzhen’, ‘shanghai’, 'BEIJING '],
“age”:[23,44,54,32,34,32],
“category”:[‘100-A’,‘100-B’,‘110-A’,‘110-C’,‘210-A’,‘130-F’],
“price”:[1200,np.nan,2133,5433,np.nan,4432]},
columns =[‘id’,‘date’,‘city’,‘category’,‘age’,‘price’])
#维度查看:
df.shape
#数据表基本信息(维度、列名称、数据格式、所占空间等):
df.info()
#每一列数据的格式:
df.dtypes
#某一列格式:
df[‘id’].dtype
#空值:
df.isnull()
#查看某一列空值:
df[‘id’].isnull()
#查看某一列的唯一值:
df[‘id’].unique()
#查看数据表的值:
df.values
#查看列名称:
df.columns
#前2行数据
df.head(2)
#后2 行数据
df.tail(2)
#用数字0填充空值:
df.fillna(value=0)
#使用列prince的均值对NA进行填充:
df[‘price’].fillna(df[‘price’].mean())
#清除city字段的字符空格:
df[‘city’]=df[‘city’].map(str.strip)
#大小写转换:
df[‘city’]=df[‘city’].str.lower()
#更改数据格式:
df[‘price’].astype(‘int’)
#更改列名称:
df.rename(columns={‘category’: ‘category-size’})
#删除后出现的重复值:
df[‘city’].drop_duplicates()
#删除先出现的重复值:
df[‘city’].drop_duplicates(keep=‘last’)
#数据替换:
df[‘city’].replace(‘sh’, ‘shanghai’)

四、数据合并
df = pd.DataFrame({“id”:[1,2,3,4,5,6],
“date”:pd.date_range(‘20130102’, periods=6),
“city”:['Beijing ', ‘SH’, ’ guangzhou ', ‘Shenzhen’, ‘shanghai’, 'BEIJING '],
“age”:[23,44,54,32,34,32],
“category”:[‘100-A’,‘100-B’,‘110-A’,‘110-C’,‘210-A’,‘130-F’],
“price”:[1200,np.nan,2133,5433,np.nan,4432]},
columns =[‘id’,‘date’,‘city’,‘category’,‘age’,‘price’])

df1=pd.DataFrame({“id”:[1,2,3,4,5,6,7,8],
“gender”:[‘male’,‘female’,‘male’,‘female’,‘male’,‘female’,‘male’,‘female’],
“pay”:[‘Y’,‘N’,‘Y’,‘Y’,‘N’,‘Y’,‘N’,‘Y’,],
“m-point”:[10,12,20,40,40,40,30,20]})

df_inner=pd.merge(df,df1,how=‘inner’) # 匹配合并,交集
df_left=pd.merge(df,df1,how=‘left’) #左表为主
df_right=pd.merge(df,df1,how=‘right’)#右表为主
df_outer=pd.merge(df,df1,how=‘outer’) #并集
#设置索引列
df_inner.set_index(‘id’)

五、提取内容
#按索引提取内容
df_inner.iloc[[0,2,5],[4,5]]
#按筛选条件提取内容
df_inner.loc[(df_inner[‘age’] < 25), [‘id’,‘city’,‘age’,‘category’,‘gender’]]

numpy中提取内容
dta = np.array(df_inner[“price”][df[“id”] == 1])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值