参考:https://www.gairuo.com/p/pandas-selecting-data
查看数据
- df.head(n)
查看前n行 - df.tail(n)
查看后n行 - df.simple(n)
随机抽样
列操作
- df[name]
- df.name
- df[[name1,name2,name3]]
行操作
-
df[0:n:1]
-
df[bool_vec]
-
df.loc[lable or index]
-
df.loc[[0,5,10]] # 指定索引 0,5,10 的行 df.loc[['Eli', 'Ben']] # 如果索引是 name
-
df.iloc[index]
列+行操作
-
dft.loc[:, ['Q1', 'Q2']] # 所有行,Q1 和 Q2两列 dft.loc[:, ['Q1', 'Q2']] # 所有行,Q1 和 Q2两列 dft.loc[:10, 'Q1':] # 0-10 行,Q1后边的所有列
-
df.iloc 与 df.loc 相似,但只能用自然索引
取具体值at
-
类似于 loc, 但仅取一个具体的值,结构为 at[<索引>,<列名>]:
-
# 注:索引是字符需要加引号 df.at[4, 'Q1'] # 65 df.at['lily', 'Q1'] # 65 假定索引是 name df.at[0, 'name'] # 'Liver' df.loc[0].at['name'] # 'Liver' # 指定列的值对应其他列的值 df.set_index('name').at['Eorge', 'team'] # 'C' df.set_index('name').team.at['Eorge'] # 'C' # 指定列的对应索引的值 df.team.at[3] # 'C'
-
iat 和 iloc 一样,仅支持数字索引
.get 可以做类似字典的操作,如果无值给返回默认值(例中是0)
df.get('name', 0) # 是 name 列
df.get('nameXXX', 0) # 0, 返回默认值
s.get(3, 0) # 93, Series 传索引返回具体值
df.name.get(99, 0) # 'Ben'
表达式筛选
保存
- fadf.to_excel(r"C:\Users\ZORO\Desktop\关系0.5.xlsx",index=False)
去重
- samedf.drop_duplicates(inplace=True,ignore_index=True)
合并
- pd.merge(redf, revdf)
交换列
- revdf = redf[[1,0]]
更改列名
- revdf.columns = [0,1]