pandas数据选择

loc

loc是使用索引名称和列名称选择行列的,接收2个参数,第一个参数用于选择索引,第二个参数用于选择列。

import pandas as pd
import numpy as np

# 设置种子,让每次测试数据一样
np.random.seed(147258)

dates = pd.date_range('20200101', periods=5)
# 数据范围[0,20) 5行4列 二维数组
data = np.random.randint(0, 20, (5, 4))

df = pd.DataFrame(data, index=dates, columns=list('ABCD'))
print(df)
print("--------------------")

# 索引为20200101的A、B两列
print(df.loc['20200101', ['A', 'B']])
print("--------------------")

# 所有行的A、C两列
print(df.loc[:, ['A', 'C']])
print("--------------------")

# 索引'20200101'到'20200103'行,A到C列
print(df.loc['20200101':'20200103', 'A':'C'])
print("--------------------")

# '20200101':'20200103'行,所有列
print(df.loc['20200101':'20200103', :])
print("--------------------")

# 指定行指定列
print(df.loc['20200101', 'A'])

loc

iloc

iloc和loc基本一致,不过不是使用名称,而是使用位置来选择,位置从0开始。

import pandas as pd
import numpy as np

# 设置种子,让每次测试数据一样
np.random.seed(147258)

dates = pd.date_range('20200101', periods=5)
# 数据范围[0,20) 5行4列 二维数组
data = np.random.randint(0, 20, (5, 4))

df = pd.DataFrame(data, index=dates, columns=list('ABCD'))
print(df)
print("--------------------")

# 第一行
print(df.iloc[0])
print("--------------------")

# 所有行的前两列
print(df.iloc[:, 0:2])
print("--------------------")

# 前2行 所有列
print(df.iloc[0:2, :])
print("--------------------")

# 2到5行 0到2列
print(df.iloc[1:4, 0:2])
print("--------------------")

# 2、3、5行,2、4列
print(df.iloc[[1, 2, 4], [1,3]])
print("--------------------")

# 指定行指定列,1行1列
print(df.iloc[0, 0])

iat与at

at用于选定指定行指定列的值,at是通过名称选择,iat是通过位置选择

import pandas as pd
import numpy as np

# 设置种子,让每次测试数据一样
np.random.seed(147258)

dates = pd.date_range('20200101', periods=5)
# 数据范围[0,20) 5行4列 二维数组
data = np.random.randint(0, 20, (5, 4))

df = pd.DataFrame(data, index=dates, columns=list('ABCD'))
print(df)
print("--------------------")
print(df.at['20200101', 'A'])
print(df.iat[0, 0])

简写

import pandas as pd
import numpy as np

# 设置种子,让每次测试数据一样
np.random.seed(147258)

dates = pd.date_range('20200101', periods=5)
# 数据范围[0,20) 5行4列 二维数组
data = np.random.randint(0, 20, (5, 4))

df = pd.DataFrame(data, index=dates, columns=list('ABCD'))
print(df)
print("--------------------")

# B列
print(df['B'])
print("--------------------")

# C与D列
print(df[['C', 'D']])
print("--------------------")

# 前3行
print(df[0:3])
print("--------------------")

# '20200101'到'20200103'行
print(df['20200101':'20200103'])

猜你喜欢

转载自blog.csdn.net/trayvontang/article/details/103787620