場所
locは、インデックス名と列名を使用して行と列を選択します。2つのパラメーターを受け取ります。最初のパラメーターはインデックスの選択に使用され、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'])
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'])