pandas读取行列数据-详细介绍
注:python索引从0开始
新建数据为:
import pandas as pd
data = {'人名': ['小明', '小红', '张三', '李四'],
'出生年份': ['2000', '2001', '2002', '2003'],
'高考分数': ['630', '590', '600', '520'],
'月薪': ['5200', '3900', '4500', '3500']}
df = pd.DataFrame(data, columns=['人名', '出生年份', '高考分数', '月薪', '年终奖'],
index=['one', 'two', 'three', 'four'])
df['年终奖'] = ['9800', '9200', '9500', '9000']
print("行索引:{}".format(list(df.index)))
print("列索引:{}".format(list(df.columns)))
print(df.index[1:3])
print(df.columns[1])
print(df.columns[1:3])
print(df)
运行结果为:
1、按行读取(单行,多行连续,多行不连续)
注:python索引从0开始
print(df[1:3]) # 按行取数据(第二行,三行)
print(df.iloc[1]) # 按行取行数据(第二行)
print(df.iloc[1, 3]) # 按坐标取(第二行第四列)
print(df.iloc[[1], [3]]) # 按坐标取(第二行第四列)
print(df.loc[df.index[1:3]]) # 按行索引取行,但没必要
print(df.iloc[1:3]) # 按行取连续数据(第二行至第三行)
print(df.iloc[[1, 3]]) # 按行取不连续数据(第二行,四行)
print(df.iloc[[1,2,3], [2,4]]) # 取部分行部分列数据(第二,三,四行,第三,五列)
程序运行结果为:
2、按列读取(单列,多列连续,多列不连续)
注:python索引从0开始
print(df['人名']) # 按列名取列
print(df.人名) # 按列名取列
print(df[['人名', '高考分数']]) # 按列名取不连续列数据
print(df[df.columns[1:4]]) # 按列索引取连续列数据
print(df.iloc[:, 1]) # 按位置取列
print(df.iloc[:, [1, 3]]) # 按位置取不连续列数据
程序运行结果为:
3、部分不连续行不连续列
注:python索引从0开始
df.iloc[[1, 3]] # 不连续行(第二行第三行)
df.iloc[:, [1, 3]] # 不连续列(第二列第四列)
df.iloc[[1,2,3], [2,4]] # 不连续行不连续列(第二,三,四行 第三,五三列)
4、按位置(坐标),按字符(索引)
注:python索引从0开始
df.iloc[1, 3] # 按坐标取(第二行第四列)
df.iloc[[1], [3]] # 按坐标取(第二行第四列)
df.iloc[:, 1] # 按位置取(任意行第二列)
df.iloc[:, [1, 3]] # 按位置取不连续列数据(任意行第二列,第四列)
df['人名']
df.人名
5、函数有 df.iloc(), df.loc(), df.iat(), df.at(), df.ix()
注:python索引从0开始
5.1 df.iloc()
print(df.iloc[1]) # 按行取行数据(第二行)
print(df.iloc[1, 3]) # 按坐标取(第二行第四列)
print(df.iloc[[1], [3]]) # 按坐标取(第二行第四列)
print(df.loc[df.index[1:3]]) # 按行索引取行,但没必要
print(df.iloc[1:3]) # 按行取连续数据(第二行至第三行)
print(df.iloc[[1, 3]]) # 按行取不连续数据(第二行,四行)
print(df.iloc[[1,2,3], [2,4]]) # 取部分行部分列数据(第二,三,四行,第三,五列)
程序运行结果为:
5.2 df.loc()
print(df.loc['two'])
print(df.loc['two', '人名'])
print(df.loc['two':'three'])
print(df.loc[['one', 'three']])
print(df.loc[['one', 'three'], ['人名', '出生年份']])
程序运行的结果为:
5.3 df.iat(), df.at(), df.ix()(用的少)
print(df.ix[1:3])
print(df.ix[:, [1, 3]])
print(df.iat[1,3])
print(df.at['two', '人名'])
注:python索引从0开始