import pandas as pd
pd.options.display.max_rows = 10#设置显示行数
df1 = pd.read_csv(r'E:\anacondatest\PythonData\高校信息.csv',encoding='gbk')
#数据框基本信息
df1.info()
# 打印前10行
print(df1.head(10))
# 打印后10行
print(df1.tail(10))
# 查看变量名
print(df1.columns)
# 返回Index(['名次', '学校名称', '总分', '类型', '所在省份', '所在城市', '办学方向', '主管部门'], dtype='object')
df1.columns = ['名次1', '学校名称1', '总分1', '类型1', '所在省份1', '所在城市1', '办学方向1', '主管部门1']
print(df1)
# 指定修改某一列,或者多列的变量名,inplace是否直接替换原来的数据框
df2= df1.rename(columns = {'学校名称1':'xuxiaomingcheng',"总分1":"总分"}, inplace=False)
print(df2)
# 筛选列
print(df1.名次) # 返回的是series类型
print(df1['名次','总分']) # 返回的是数据框
# 删除变量列,inplace是否替换原来的数据框,尽量不要在原来的数据框上直接删除列
df3 = df1.drop(columns=['名次','总分'], inplace=False)
# 变量类型转换,pandas具有的数据类型是python和numpy的混合类型
print(df1.dtypes) # 查看各列的数据类型
df1.astype('str', errors='ignore') # 修改整个数据框,errors报错忽略
df1.名次.astype("str") # 只修改某一列的数据类型
# 使用指定转换类型的函数,可以配合df.apply来批量进行多列的转换
'''pd.to_datetime()
pd.to_numeric()
pd.to_timedelta()
pd.to_srting()'''
pd.to_numeric(df1.总分)
df1(['名次', '总分']).astype('str').apply(pd.to_numeric)
# 基于数据特征进行自动转换,出错不易排除
df1.infer_objects()