#测试文本(Test.txt) City Time Local 北京 2017 海淀区 阜阳 2018 颍上区 宿州 2019 埇桥区 #读取文本类型数据,构建DataFrame pd.read_table("D:/Test.txt", sep=',', encoding = "UTF-8", header = "") 注释:path路径, sep分隔符, header表头(默认以第一行为表头,如果没有则 =None 或者 =-1) 查 1)查询DataFrame数据 print(pd) 2)筛选数据 筛选出 Local==”海淀区“的那一行的数据 print(df["City"] == "海淀区") 3)筛选出 时间为2019年的城市 print(df[["City"]][df["Time"] == "2019"]) 4)对筛选出的数值求和: int((df[["City"]][df["Time"] == "2019"])).sum() 5)获得筛选出的数据总行数: (df[["City"]][df["Time"] == "2019"]).shape[0] 6)获得筛选出的数据总列数: (df[["City"]][df["Time"] == "2019"]).shape[1] 7)iloc 和 loc 以及 ix方法(ix结合前两种混合索引) 输出指定的行数数据: <1> print(df.iloc[:3]) #iloc是返回前3行的数据(通过行号返回信息,整型参数) <2> print(df.loc[:3]) #loc返回的是索引3之前的数据 8)输出指定某行或者多行的指定列数据(输出第0行和第2行的Time 和 local 列) print(df.loc[[0, 2], ['Time', 'Local']]) 9)输出指定范围区间的行数的指定列数据(输出第0行至第0行的Time 和 local 列 print(df.loc[1:2, ['Time', 'Local']]) 增 1)指定位置添加一行值(直接下压一行数值) df.loc[0] = [1, 1, 1, 1] 2)通过使用新的DataFrame进行合并操作实现数据的添加 df2 = pd.DataFrame([6,6,6,6]).T #这里的T,新旧两个DataFrame axis不匹配,需要匹配 # 修改df2的column和df的一致 df2.columns = df.columns # 把两个dataframe合并,需要设置 ignore_index=True, #如果不设置,导致插入的数据索引不规则 df_new = pd.concat([df,df2],ignore_index=True) print((df_new)) 3)增加一列或者多列数据 <1>不可更改增加的数据列位置 print(pd.concat([df, pd.DataFrame(columns=list('DE'))])) <2>随意调整增加的列和以前的列的位置 print(df.reindex(columns=list("ABDE"))) 删 1)删除某一列 del df['City'] 2)删除多列 <1> print(df.drop(columns=['City', 'Local'])) <2> print(df.drop(['City'], axis = 1)) #一定要指定axis (axis=1是横轴,axis=0是纵轴) 3)删除某一行或指定多个行 print(df.drop([1, 2, 6], axis = 0)) #删除第1, 2, 6行数据 4)删除连续多行数据 df.drop(df.index[0:10], inplace = True) print(df) 改 修改列名 1) <1> df.columns = ['C', 'T', 'L'] #(如果想修改一个列名也必须要将所有的列名写出来) <2> df.rename(columns={'City':'c', 'Time':'t'},inplace=True) #任意更改个数(无列名时,使用列的序号位置替换) 2)指定位置单个数据修改(将海淀区换成通州区): df.iloc[0, 2] = "通州区" 3)将某个值换成指定的数据 df.replace("****", "#####", inplace=True) #前者是被替换的值,后者是填充值,inplace=True说明DataFrame被修改生效 4)替换空值(NaN) df.fillna("0", inplace=True) #将所有缺失值替换成0,如果不写inplace=True,df不生效