暑期实训python第七天-------pandas(dataframe)

import pandas as pd
import numpy as np

下载pandas,在PyCharm里面的Terminal里输入pip install pandas就行了

Series:索引(默认是0开始) 加 值 就是一行

c = pd.Series(['wo','de','zuguo','beijing','zhongguo'])
print(c)
0          wo
1          de
2       zuguo
3     beijing
4    zhongguo
dtype: object

打印出来的series自动添加了索引

也可以自己指定索引,这就是使用字典创建series

cities = {'beijing':50000.0,'shanghai':2626262,'shenzhen':66626,'hangzhou':None}

beijing       50000.0
shanghai    2626262.0
shenzhen      66626.0
hangzhou          NaN
dtype: float64

还有一种就是使用ndarry创建

s = pd.Series(np.random.random(5),index=['a','b','c','d','e'])
a    0.858003
b    0.977923
c    0.741335
d    0.110244
e    0.927743
dtype: float64

i

info = {"姓名":"小王","性别":"男","年龄":30,"身高":150,"体重":120}

s = pd.Series(info)
print(s.index)
print(s.values)
更改索引
s.rename(index ={"姓名":'name', "性别":'sex', "年龄":'age',"身高": 'height', "体重":'weight'},inplace=True)

DataFrame

创建dataframe:

data = {
    's':['O','O','O','Ne','Ne'],
    'year':[2010,2011,2002,2001,2002],
    'p':[1.5,1.7,3.6,2.4,2.9]
}
df = pd.DataFrame(data)
df

#输出
    p     s    year
0   1.5  O    2010
1   1.7  O    2011
2   3.6  O    2012
3   2.4  Ne   2021
4   2.9  Ne   2022

DataFrame的行索引是index,列索引是columns,我们可以在创建DataFrame时指定索引的值:

df = pd.DataFrame(data,index=['one','two','three','four','five'],columns=['year','state','pop','debt'])
df

#输出
    year    state   pop debt
one 2000    Ohio    1.5 NaN
two 2001    Ohio    1.7 NaN
three   2002    Ohio    3.6 NaN
four    2001    Nevada  2.4 NaN
five    2002    Nevada  2.9 NaN

删除NaN数据

在这里插入图片描述
how = “all”:指的是,那一行所有数据都为空 才删除
how = “any”,指的是哪一行只要有一个为空。就删除
默认删除的是行数据,指定axis = 1,才是删除列

is np.nan :判断元素的数据是否是NaN,不是用等号,使用is

修改dataframe

在这里插入图片描述

df.head(n) 默认前五行
df.yaer ,查看列的数据 取多个列: df[['year','city']]

取特定 行和列

df.loc['a','city']

取整行数据

 df.loc['a']

取整列数据,前面的行为空,

df.loc[,'city']

可以使用索引 来取值

df,iloc[]

习题:

习题1:利用Faker库 和字典数据结构,构造100条任务数据并生成一个dataframe,获取dataframe的index、columns、和values。把列名都改为中文,统计df中的男女个数

关于Faker库

from faker import Faker
生成客户端,利于爬虫
print(faker.user_agent())
infos = {'人名':[],'地址':[],'手机号':[],'出生日期':[],'姓别':[]}
for i in range(100):
    p = faker.simple_profile()
    infos['人名'].append(p["name"])
    infos['地址'].append(p["address"])
    infos['手机号'].append(faker.phone_number)
    infos['出生日期'].append(p["birthdate"])
    infos['姓别'].append(p["sex"])

peoples = pd.DataFrame(infos)

faker.simple_profile()

直接就生成一个人的基本信息,类型是字典形式 <class ‘dict’>

{
'username': 'yangyan', 
'name': '吴静', 
'sex': 'F',
'address': '台湾省潜江市黄浦太原街C座 399301', 
'mail': 'tangwei@yahoo.com',
'birthdate': datetime.date(1939, 8, 25)
}

将某很多连续的行,指定一列的值修改为NaN

df.loc[10:26,'petal_length'] = None

将NaN修改为1

df.fillna(1,inplace=True)

删除NaN的值

df.dropna(axis=0,how='all',inplace=True)

使索引重新从0 开始递推:

df.reset_index(drop=True,inplace=True)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你在狗叫什么、

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

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

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

打赏作者

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

抵扣说明:

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

余额充值