2_数据分析—认识pandas

一、认识 pandas

1.1 pandas有两个数据类型DateFrame和Series

import numpy as np
import pandas as pd
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
example_1 = pd.Series(sdata)
example_1
Ohio      35000
Texas     71000
Oregon    16000
Utah       5000
dtype: int64
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002, 2003],'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
example_2 = pd.DataFrame(data)
example_2

image-20211116200343527

1.2 载入数据

df = pd.read_csv('/Users/chenandong/Documents/datawhale数据分析每个人题目设计/titanic/train.csv')
df.head(3)

image-20211120141545551

1.3 查看DataFrame数据的每列的名称

df.columns
Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',
    'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],
   dtype='object')

1.4 查看"Cabin"这列的所有值

1.4.1 方法一

df['Cabin'].head(3)
0     NaN
1     C85
2     NaN
3    C123
4     NaN
Name: Cabin, dtype: object

1.4.2 方法二

df.Cabin.head(3)
0     NaN
1     C85
2     NaN
3    C123
4     NaN
Name: Cabin, dtype: object

1.5 对比两个文件,将多出的列删除

经过我们的观察发现一个测试集test_1.csv有一列是多余的,我们需要将这个多余的列删去

test_1 = pd.read_csv('test_1.csv')
test_1.head(3)

image-20211120152352478

1.5.1 方法一

# 删除多余的列
del test_1['a']
test_1.head(3)

image-20211120160209549

1.5.2 方法二

# 删除多余的列
df = test_1.drop(columns=['a'])
df.head(3)

1.6 隐藏元素

将[‘PassengerId’,‘Name’,‘Age’,‘Ticket’]这几个列元素隐藏,只观察其他几个列元素

df.drop(['PassengerId','Name','Age','Ticket'],axis=1).head(3)

image-20211120163107798

【思考回答】

如果想要完全的删除你的数据结构,使用inplace=True,因为使用inplace就将原数据覆盖了,所以这里没有用

二、筛选数据

表格数据中,最重要的一个功能就是要具有可筛选的能力,选出我所需要的信息,丢弃无用的信息。

2.1 我们以"Age"为筛选条件,显示年龄在10岁以下的乘客信息。

df[df["Age"]<10].head(3)

image-20211120163858227

2.2 以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage

midage = df[(df["Age"]>10)& (df["Age"]<50)]
midage.head(3)

image-20211120164046958

2.3 将特定行数据显示出来

2.3.1 将midage的数据中第100行的"Pclass"和"Sex"的数据显示出来

midage = midage.reset_index(drop=True)   # 重新设置索引
midage.head(3)

image-20211120165929377

【思考】这个reset_index()函数的作用是什么?如果不用这个函数,下面的任务会出现什么情况?

作用:使用索引重置生成一个新的DataFrame或Series,可以把索引用作列。如果不想保留原来的index,使用参数drop=True,重新排序。默认参数为False。

midage.loc[[100],['Pclass','Sex']]
    Pclass	   Sex
100   2        male

2.3.2 使用loc方法将midage的数据中第100,105,108的"Pclass","Name"和"Sex"的数据显示出来

midage.loc[[100,105,108],['Pclass','Name','Sex']] 

image-20211130111338629

2.3.3 使用iloc方法将midage的数据中第100,105,108的"Pclass","Name"和"Sex"的数据显示出来

midage.iloc[[100,105,108],[2,3,4]]

image-20211130111456375

2.3.3.1 对比ilocloc的异同!
data=DataFrame(np.arange(16).reshape(4,4),index=list("ABCD"),columns=list("wxyz"))
print(data)
    w   x   y   z
A   0   1   2   3
B   4   5   6   7
C   8   9  10  11
D  12  13  14  15
  • loc——通过行标签索引行数据
print(data.loc["A"])
w    0
x    1
y    2
z    3
  • iloc——通过行号索引行数据
print(data.iloc[0])
w    0
x    1
y    2
z    3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

少云清

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

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

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

打赏作者

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

抵扣说明:

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

余额充值