One - One Code All

Blog Content

python pandas dataframe 行列选择,切片操作方法

Python 统计学-科学计算   2017-05-01 10:27:47

SQL中的select是根据列的名称来选取;Pandas则更为灵活,不但可根据列名称选取,还可以根据列所在的position(数字,在第几行第几列,注意pandas行列的position是从0开始)选取。相关函数如下:


1)loc,基于列label,可选取特定行(根据行index);

2)iloc,基于行/列的position;

3)at,根据指定行index及列label,快速定位DataFrame的元素;

4)iat,与at类似,不同的是根据position来定位的;

5)ix,为loc与iloc的混合体,既支持label也支持position;

import pandas as pd
import numpy as np

df = pd.DataFrame({'total_bill': [16.99, 10.34, 23.68, 23.68, 24.59],
          'tip': [1.01, 1.66, 3.50, 3.31, 3.61],
          'sex': ['Female', 'Male', 'Male', 'Male', 'Female']})
# data type of columns
print(df.dtypes)
# indexes
print(df.index)
# return pandas.Index
print(df.columns)
# each row, return array[array]
print(df.values)
print(df)
print(df.loc[1:3, ['total_bill', 'tip']])
print(df.loc[1:3, 'tip': 'total_bill'])
print(df.iloc[1:3, [1, 2]])
print(df.iloc[1:3, 1: 3])
  
# 错误的表示:

print(df.loc[1:3, [2, 3]])#.loc仅支持列名操作
print(df.loc[[2, 3]])#.loc可以不加列名,则是行选择
print(df.iloc[1:3])#.iloc可以不加第几列,则是行选择

总结

1).loc,.iloc,.ix,只加第一个参数如.loc([1,2]),.iloc([2:3]),.ix[2]…则进行的是行选择

2).loc,.at,选列是只能是列名,不能是position

3).iloc,.iat,选列是只能是position,不能是列名

4)df[]只能进行行选择,或列选择,不能同时进行列选择,列选择只能是列名。

 



上一篇:别怕!带你了解支气管镜检查
下一篇:设置谷歌浏览器搜索结果打开链接自动跳转到新标签页

The minute you think of giving up, think of the reason why you held on so long.