Pandas的简单操作

1.Series

1.创建:

用列表创建

pd.Series([1,2,3,4,5])

用numpy数组创建

a = np.array([1,2,3,4,5])
pd.Series(a)

用字典创建

dict_s = {"name":"彦","age":20,"sex","女"}
pd.Series(dict_s)

也可通过其他Series定义新的Series对象

arr = np.array([1,2,3,4,5])
ser1 = pd.Series(arr)
ser2 = pd.Series(ser1)

2.筛选

ser = pd.Series([1,2,3,4,5,6,7,8,9])
ser[ser>60]

3.运算

运算方式是相同index的值进行数学运算,不能运算的元素被置为NaN

4.去重

Series对象.unique()

5.计算出现的个数

Series对象.value_counts()
返回的index为该数字,value为该数字出现的次数

6.判断列表与Series的关系

ser = pd.Series([1,2,3,4,5,6])
ser.isin([2,5])
#0    False
#1     True
#2    False
#3    False
#4     True
#5    False
#dtype: bool

ps:Series中可用isnull()或者notnull()函数识别元素是否为NaN,均返回Series对象

2.DataFrame

1.创建
DataFrame构造方法中传递字典

import pandas as pd
data = {"goods":["noodles","rice","soup","toy"],"price":[22,56.5,10,15]} 
df = pd.DataFrame(data)
# 	  goods	    price
# 0	  noodles	22.0
# 1	  rice	    56.5
# 2	  soup	    10.0
# 3	  toy	    15.0

可用columns限制列的个数和顺序

pd.DataFrame(data,columns=["price","goods"])

可用index更改行索引的名称

pd.DataFrame(data,index=["a","b","c","d"])
获取所有列名称DataFrame对象.columns
获取所有行名称DataFrame对象.index
获取所有在DataFrame中的元素DataFrame对象.values

查找某一列中储存的元素
DataFrame对象[“列名称”]或DataFrame对象.[“列名称”]

选取行
iloc属性
df对象.iloc[数字索引]
df对象.iloc[数字列表索引]
loc属性
df对象.loc[标签索引]
df对象.loc[标签列表索引]

切片
df对象[数字索引切片](包左不包右)
df对象[标签索引切片](左右都包)

获取具体值
df对象[“列名称”][“行名称索引或数字”]

给index列命名
df对象.index.name = “新值”
给columns属性命名
df对象.columns.name = “新值”

添加行:
df对象.loc[“index名”] = [“value1”,“value2”,…]

添加列:
df对象[“属性名”] = [“value1”,“value2”,…]

判断一组元素是否属于DataFrame
df对象.isin(列表)
获取
df对象[df对象.isin(列表)]

删除行:
df对象.drop([“行索引”],axis=0,inplace=True)
删除列:
df对象.drop([“列索引”],axis=1,inplace=True)
del df[“列索引”]

筛选:
筛出DataFrame中有xxx的地方
df对象[df对象==“xxx”]

转置:
df对象.T
df对象.transpose()

垂直拼接
ser1 = pd.Series([1,2,3,4,5])
ser2 = pd.Series([4,5,6,7,8])
ser1.concat(ser2,axis=0)
拼接后为一个Series对象

水平拼接
ser1.concat(ser2,axis=1)
拼接后为一个DataFrame对象

计算series中每个元素的字符串长度
ser.map(lambda x:len(x))

使series中每个元素的首字母为大写
ser.map(lambda x:x.title())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值