Pandas读取行列数据最全方法

【Pandas读取行列数据最全方法】1、读取方法有按行(单行,多行连续,多行不连续),按列(单列,多列连续,多列不连续);部分不连续行不连续列;按位置(坐标),按字符(索引);按块(list);函数有 df.iloc(), df.loc(), df.iat(), df.at(), df.ix()。
2、转换为DF,赋值columns,index,修改添加数据,取行列索引

data = https://www.it610.com/article/{'省份': ['北京', '上海', '广州', '深圳'],'年份': ['2017', '2018', '2019', '2020'],'总人数': ['2200', '1900', '2170', '1890'],'高考人数': ['6.3', '5.9', '6.0', '5.2']}df = pd.DataFrame(data, columns=['省份', '年份', '总人数', '高考人数', '高数'],index=['one', 'two', 'three', 'four'])df['高数'] = ['90', '95', '92', '98']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)

行索引:['one', 'two', 'three', 'four']
列索引:['省份', '年份', '总人数', '高考人数', '高数']
Index(['two', 'three'], dtype='object')
年份
Index(['年份', '总人数'], dtype='object')
省份年份总人数 高考人数高数
one北京201722006.390
two上海201819005.995
three广州201921706.092
four深圳202018905.298
3、iloc不能通过[:, [1:3]]取连续数据,取连续数据只能通过 df[df.columns[1:4]],先获取列索引,再取数据。
print(df['省份'])#按列名取列print(df.省份)#按列名取列print(df[['省份', '总人数']])#按列名取不连续列数据print(df[df.columns[1:4]])#按列索引取连续列数据print(df.iloc[:, 1])#按位置取列print(df.iloc[:, [1, 3]])#按位置取不连续列数据

one北京
two上海
three广州
four深圳
Name: 省份, dtype: object
one北京
two上海
three广州
four深圳
Name: 省份, dtype: object
省份总人数
one北京2200
two上海1900
three广州2170
four深圳1890
年份总人数 高考人数
one201722006.3
two201819005.9
three201921706.0
four202018905.2
one2017
two2018
three2019
four2020
Name: 年份, dtype: object
年份 高考人数
one20176.3
two20185.9
three20196.0
four20205.2
4、通过df.iloc[](数字)取行数据,取部分行部分列时,要先写行,再写列;有条件的取数据
print(df[1:3])#按行取数据,这行代码结果没在下面输出print(df[df.高数>90])#按行有条件的取数据,结果没输出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]])取部分行部分列数据

省份上海
年份2018
总人数1900
高考人数5.9
高数95
Name: two, dtype: object
5.9
高考人数
two5.9
省份年份总人数 高考人数高数
two上海201819005.995
three广州201921706.092
省份年份总人数 高考人数高数
two上海201819005.995
three广州201921706.092
省份年份总人数 高考人数高数
two上海201819005.995
four深圳202018905.298
总人数高数
two190095
three217092
four189098
5、通过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'], ['省份', '年份']])

省份上海
年份2018
总人数1900
高考人数5.9
高数95
Name: two, dtype: object
上海
省份年份总人数 高考人数高数
two上海201819005.995
three广州201921706.092
省份年份总人数 高考人数高数
one北京201722006.390
three广州201921706.092
省份年份
one北京2017
three广州2019
6、ix,iat,at取行列数据,此方法不常用,可以使用上面方法即可。
print(df.ix[1:3])print(df.ix[:, [1, 3]])print(df.iat[1,3])print(df.at['two', '省份'])

省份年份总人数 高考人数高数
two上海201819005.995
three广州201921706.092
年份 高考人数
one20176.3
two20185.9
three20196.0
four20205.2
5.9
上海

到此这篇关于Pandas读取行列数据最全方法的文章就介绍到这了,更多相关Pandas读取行列 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读