pandas学习(二)

pandas学习二

import numpy as np
import pandas as pd
#定义初始数据
date=pd.date_range('20200408',periods=6)
df=pd.DataFrame(np.arange(24).reshape((6,4)),index=date,columns=['a','b','c','d'])
date
DatetimeIndex(['2020-04-08', '2020-04-09', '2020-04-10', '2020-04-11',
               '2020-04-12', '2020-04-13'],
              dtype='datetime64[ns]', freq='D')
df
abcd
2020-04-080123
2020-04-094567
2020-04-10891011
2020-04-1112131415
2020-04-1216171819
2020-04-1320212223
#输出某列数据
print(df['a'],df.a)
2020-04-08     0
2020-04-09     4
2020-04-10     8
2020-04-11    12
2020-04-12    16
2020-04-13    20
Freq: D, Name: a, dtype: int32 2020-04-08     0
2020-04-09     4
2020-04-10     8
2020-04-11    12
2020-04-12    16
2020-04-13    20
Freq: D, Name: a, dtype: int32
#输出某些行数据
df[0:3]
abcd
2020-04-080123
2020-04-094567
2020-04-10891011

用loc进行纯标签名输出

#选取某行 
df.loc['20200408']
a    0
b    1
c    2
d    3
Name: 2020-04-08 00:00:00, dtype: int32
#输出ab列的所有数据
df.loc[:,['a','b']]
ab
2020-04-0801
2020-04-0945
2020-04-1089
2020-04-111213
2020-04-121617
2020-04-132021
df.loc['20200408',['a','b']]
a    0
b    1
Name: 2020-04-08 00:00:00, dtype: int32

用iloc进行纯索引输出

#输出第三行第一位的数据
df.iloc[3,1]
13
#输出多行多列数据
df.iloc[3:5,1:3]
bc
2020-04-111314
2020-04-121718
#指定具体索引输出
df.iloc[[1,3,5],[0,3]]
ad
2020-04-0947
2020-04-111215
2020-04-132023

用ix进行标签名+索引混合输出 (ix以及被放弃了)

df.ix[:3,['a','c']]
D:\Anaconda3\lib\site-packages\ipykernel_launcher.py:1: DeprecationWarning: 
.ix is deprecated. Please use
.loc for label based indexing or
.iloc for positional indexing

See the documentation here:
http://pandas.pydata.org/pandas-docs/stable/indexing.html#ix-indexer-is-deprecated
  """Entry point for launching an IPython kernel.
ac
2020-04-0802
2020-04-0946
2020-04-10810

数据筛选

#筛选出小于8的数据
df[df<8]
abcd
2020-04-080.01.02.03.0
2020-04-094.05.06.07.0
2020-04-10NaNNaNNaNNaN
2020-04-11NaNNaNNaNNaN
2020-04-12NaNNaNNaNNaN
2020-04-13NaNNaNNaNNaN
df
abcd
2020-04-080000
2020-04-094567
2020-04-10891011
2020-04-1112131415
2020-04-1216171819
2020-04-1320212223
#筛选出a里面小于3的值,该值所在的行全部设置为0
df[df.a<3]=0
df
abcd
2020-04-080000
2020-04-094567
2020-04-10891011
2020-04-1112131415
2020-04-1216171819
2020-04-1320212223
#筛选出a里面小于5的值,该值所在的b列全部设置为1
df.b[df.a<5]=1
df
abcd
2020-04-080100
2020-04-094167
2020-04-10891011
2020-04-1112131415
2020-04-1216171819
2020-04-1320212223
#新加一列空值
df['e']=np.nan
df
abcde
2020-04-080100NaN
2020-04-094167NaN
2020-04-10891011NaN
2020-04-1112131415NaN
2020-04-1216171819NaN
2020-04-1320212223NaN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值