pandas

一、pandas series

pandas series 是像数组一样的一维对象,可以存多数种数据类型。

1、创建pandas series

import pandas as pd

students = pd.Series(data=['张三', '男', 23], index=['姓名', '性别', '年龄'])

print(students)
print(students.shape)
print(students.index)
print(students.size)
print(students.values)
print('姓名' in students)
print("身高" in students)

运行结果:

姓名    张三
性别     男
年龄    23
dtype: object
(3,)
Index(['姓名', '性别', '年龄'], dtype='object')
3
['张三' '男' 23]
True
False

2、访问pandas series

import pandas as pd

students = pd.Series(data=['张三', '男', 23], index=['姓名', '性别', '年龄'])

print(students['姓名'])
print(students[['姓名', '年龄']])

print(students[1])
print(students[[0, 1, 2]])

print(students.loc['姓名'])
print(students.iloc[0])

# 修改
students['年龄'] = 25
print(students['年龄'])

#删除inplace = True 表示在元序列中修改
students.drop('性别', inplace=True)
print(students)

3、pandas series 运算

import pandas as pd
import numpy as np

list = pd.Series(data=[10, 20, 30], index=['apple', 'oranges', 'banner'])

#计算 * 2
print(list * 2)

print(list['apple'] * 5)

print(list[['apple', 'banner']] * 3)

print(np.power(list, 2))

#输入出元素是否小于20
print(list < 20)

运行结果:

apple      20
oranges    40
banner     60
dtype: int64

50

apple     30
banner    90
dtype: int64

apple      100
oranges    400
banner     900
dtype: int64

apple       True
oranges    False
banner     False
dtype: bool

二、pandas dataframe

dataframe 是一个有行有列的二维结构,类似Excel的那种结构。

import pandas as pd

item = {
    "alice": pd.Series([245, 24, 50], ['bike', 'pants', 'watch']),
    'lucy': pd.Series([40, 100, 500, 45], ['book', 'glasses', 'bike', 'pants'])
    }

print(type(item))
shopping_card = pd.DataFrame(item)
print(shopping_card)
print(shopping_card.shape)
print(shopping_card.ndim)
print(shopping_card.size)

#列选择
shopping_card = pd.DataFrame(item, columns=['lucy'])
print(shopping_card)
#行选择
shopping_card = pd.DataFrame(item, index=['book', 'bike'])
print(shopping_card)
#行 列 选择
shopping_card = pd.DataFrame(item, index=['book', 'bike'], columns=['lucy'])
print(shopping_card)

data = {'int': [1, 2, 3], 'float': [1.1, 2.2, 3.3]}
#创建方式二
shopping_card = pd.DataFrame(data=data)
print(shopping_card)

shopping_card = pd.DataFrame(data=data, index=['label_1', 'label_2', 'label_3'])
print(shopping_card)
#创建方式三
data = [{'book': 20, 'bike': 50}, {'book': 70, 'bike': 80, 'watch': 90}]

shopping_card = pd.DataFrame(data=data)
print(shopping_card)

#访问pandas中的数据 指定列
print(shopping_card[['book', 'watch']])

#访问pandas中的数据 指定行
print(shopping_card.loc[[0]])

#访问pandas中的数据 指定列 and行
print(shopping_card['book'][0])
#增加1列
shopping_card['phone'] = [100, 110]

print(shopping_card)

#计算
shopping_card['total'] = shopping_card['book'] + shopping_card['bike'] + shopping_card['watch'] + shopping_card['phone']
print(shopping_card)

#删除列
shopping_card = shopping_card.drop(['total', 'phone'], axis=1)
print(shopping_card)

#删除行
shopping_card = shopping_card.drop([1], axis=0)
print(shopping_card)

处理NAN值

import pandas as pd

item = {
    "alice": pd.Series([245, 24, 50], ['bike', 'pants', 'watch']),
    'lucy': pd.Series([40, 100, 500, 45], ['book', 'glasses', 'bike', 'pants'])
    }
shopping_card = pd.DataFrame(item)
print(shopping_card)
print("------------------------")

#is返回返回一个shopping_card大小的dataframe 里面的值为True和False, True表示为NAN值
print(shopping_card.isnull())
print("------------------------")


#统计NaN 的 次数
print(shopping_card.isnull().sum().sum())
print("------------------------")

#删除有NaN的行 axis = 1 列
del_nan = shopping_card.dropna(axis=0)
print(del_nan)
print("------------------------")

#替换nan为0
fill_nan = shopping_card.fillna(0)
print(fill_nan)
print("------------------------")

其他

import pandas as pd
#读取csv文件 转换为dataframe

data = pd.read_csv('/opt/sss.csv')

#获取前5行
data.head()

#获取最后5行
data.tail()

#我们还可以选择使用 .head(N) 或 .tail(N) 分别显示前 N 行和后 N 行数据

#统计信息
data.describe()

#查看单列的统计信息
data['xxx'].describe()

#可以统计类方法max,min,mean等方法
data.max()

#统计数据的关联性,关联性值为 1 表明关联性很高,关联性值为 0 告诉我们数据根本不相关。
data.corr()

#按照xxxx列聚合数据
data.groupby('xxxx')

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值