位置计算 & 数据选择

深入浅出Pandas读书笔记

4.4 位置计算

原数据在同位置上对移动后的数据相减, 可以传入一个数字来规定移动多少位, 负数代表移动方向相反

s = pd.Series([9, 4, 6, 7, 9])
s.diff()
'''
0    NaN
1   -5.0
2    2.0
3    1.0
4    2.0
dtype: float64
'''
s.diff(-2)
'''
0    3.0
1   -3.0
2   -3.0
3    NaN
4    NaN
dtype: float64
'''

df.diff(1, axis=1)

位移, 不做计算, 支持上下左右移动, 移动后目标位置的类型无法接收的为NaN

df.shift()
df.shift(3)
df.shift(-1)
df.shift(axis=1)

df - df.shift()

rank()可以生成数据的排序值替换原来的数据值, 他支持对所有类型数据进行排序, 如英文会按字母顺序.

df.head().rank()
'''
name    team    Q1  Q2  Q3  Q4
0   4.0 5.0 4.0 1.0 2.0 2.0
1   2.0 2.5 1.0 2.0 3.0 1.0
2   1.0 1.0 2.0 4.0 1.0 4.0
3   3.0 2.5 5.0 5.0 5.0 3.0
4   5.0 4.0 3.0 3.0 4.0 5.0
'''

df.select_dtypes('number').head().rank(axis=1)
'''
    Q1  Q2  Q3  Q4
0   4.0 1.0 2.0 3.0
1   1.0 2.5 2.5 4.0
2   2.0 3.0 1.0 4.0
3   3.0 4.0 1.0 2.0
4   3.0 1.0 2.0 4.0
'''

4.5 数据选择

操作语法选择列df[col], df[[col1, col2]]按索引选择行df.loc[label]按数字索引选择行df.iloc[loc]使用切片选择行df[5:10]用表达式筛选行df[bool_vec]

df[col], df.col(这里的col需要复合python变量的命名方式, 不能是数字开头如 1Q, 或中间有空格如 my name)

df[:2]
df[4:10]
df[:]
df[:10:2]
df[::-1]
df[2]
df[[col1, col2]]

df.loc[

  • [A, B, C]
  • [True, False, …]
  • A:C
  • A
  • Exp
  • Fun
df.loc[0]
df.set_index('name').loc['Ben']
df.loc[[0, 5, 10]]
df.set_index('name').loc[['Eli', 'Ben']]
df.loc[[False, True]*50]

df.loc[0:5]
df.loc['2010':'2014']
df.loc[:]

df.loc[:, ['name', 'Q1']]
df.loc[0:9, ['Q1', 'Q2']]
df.loc[:10, 'Q1':]
df.loc[:, :]

传入的表达式与.loc相同, 可以使用数字索引进行筛选

df.iloc[:3]
df.iloc[:]
df.iloc[2:20:3]
df.iloc[:3, [0, 1]]
df.iloc[:3, :]
df.iloc[:3, :-2]

df.at[

df.at[4, 'Q1']
df.iat[4, 2]

类似字典的get, df.get(key, default=None), 如果是DataFrame, key需要传入列名, 返回的是Series, 如果是Series, 需要传入索引, 返回的是一个定值

df.get('name', 0)
df.get('nameXXX', 0)
s.get(3, 0)

df.truncate() 可以对DataFrame和Series进行截取, 将before和after参数以外的数据剔除
作用上来讲 与iloc类似
truncate -> 返回一个新DataFrame
iloc -> 返回一个对象可以修改原DataFrame
部分关于view与copy的知识, 参考: https://blog.csdn.net/Mart_inn/article/details/126242842

df.truncate(before=2, after=4)

Original: https://blog.csdn.net/zhaoleiedu/article/details/127525385
Author: EricZHAOedu
Title: 位置计算 & 数据选择

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/740813/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球