Pandas基本使用

#测试文本(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不生效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值