python dataframe的某一列变为list_Python数据分析系列文章之Pandas(上)

本文是Python数据分析系列文章的第三篇,聚焦Pandas库的使用。介绍了Series和DataFrame的基本数据结构,如创建、性质及取值运算,并讨论了重新索引、行列筛选、运算与数据对齐、排序与排名、统计计算、缺失值处理和层次化索引等核心功能。此外,还涉及数据读存与文件格式的操作,如read_csv和to_csv。
摘要由CSDN通过智能技术生成

本篇是【机器学习与数据挖掘】头条号原创首发Python数据分析系列文章的第三篇

  • Python数据分析系列文章之Python基础篇
  • Python数据分析系列文章之Numpy
  • Python数据分析系列文章之Pandas(上)
  • Python数据分析系列文章之Pandas(下)
  • Python数据分析系列文章之Scipy
  • Python数据分析系列文章之Matplotlib
  • Python数据分析系列文章之Seaborn
  • Python数据分析系列文章之Polty
  • Python数据分析系列文章之datetime

本章介绍python数据分析中比较主要的一个库pandas的使用,pandas篇分上下两部分,本节主要介绍pandas使用中一些比较重要的操作。

本节目录:

  • 基本数据结构
  • 基本功能
  • 数据读存与文件格式
  • 总结

基本数据结构

想要熟练的使用pandas,就需要了解pandas中两种重要的数据结构:Series和DataFrame。

import pandas as pd

Series

1、创建

pd.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
431dc08bdf15e7099520a1c3443adde2.png

Series一种类似于一维数组的数据对象,由一组数据和一组与之对应的索引组成。series创建方式有四种:

  • 使用Python列表创建
  • 使用numpy数组创建
  • 使用Python字典创建
  • 使用单个标量值创建
#左边为索引,右边为值,没有设置索引,则自动创建0-n的整数序列s1 = pd.Series(np.array([1,2,3,4,5,np.nan]))s2 = pd.Series([1,2,3,4,5])s3 = pd.Series({'a':1,'b':2,'c':3,'d':4})s4 = pd.Series(3)#可以自带索引值s5 = pd.Series([1,2,3,4,5],index=list('abcde'))

2、性质

下面主要介绍Series使用中一些常见的方法

#属性s1.index#RangeIndex(start=0, stop=5, step=1)#值s1.values#array([1, 2, 3, 4, 5]) #一维数组s1.value_counts(dropna=True) #值统计,平时用的比较多s1.notnull()s1.isnull() #返回元素是否缺失s1.fillna(0) #缺失值填充s1.drop_duplicates() #去重s1.apply(lambda x:x+1) #用的比较多的性质s2.astype('int') #如果里面有一些不能转为该类型的元素值(如NA,'a')就会出错。s2.iat[0] #取第一个元素,不是按照indexs2.dtypes #dtype('int64'),类型s2.nunique() #5,Series中的元素个数,没有重复的#修改indexindex = ['a1','b1','c1','d1','e1']s5 = pd.Series(dict(s3),index=index)s5#a1 1.0b1 2.0c1 3.0d1 4.0e1 NaNdtype: float64

3、取值与运算

###取值####s1[2] #通过index取数据s3.iat[2] #通过index的顺序取 s1[s1>=3] #取出Series中大于等于3的子集,返回的还是Seriess1[s1.isnull()==True] #去元素为空缺值的子Series###运算###s2**2#0 21 42 63 84 10dtype: int64s2+s2 #输出同上np.exp(s2)#0 2.7182821 7.3890562 20.0855373 54.5981504 148.413159dtype: float64

DataFreme

1、创建

DataFrame是一种表格型的数据结构,它含有一组有序的列,每一列元素值类型可以是数值型、类别型、布尔类型,有行和列索引,可以看成是有Series组成的字典,DataFrame中的数据可以是一个或者多个二维块组成(不是列表、字典或其他一维数据结构)。

data = {'city': ['BeiJing','WuHan','HangZhou','ShangHai','ChnengDu','ChongQing'],  'gender':[0,1,1,0,1,0], 'age':[24,65,34,80,12,28]})d1 = pd.DataFrame(data)
fce6ac87dae1e5a76376d7505716f558.png

自动添加了索引,可以根据指定列的顺序进行排列。

#类似于Series,如果传入的列没有值,则为空(NaN)d2 = pd.DataFrame(data,columns=['gender','age','city'])d3 = pd.DataFrame(data,columns=['gender','age','city','name'],index=[list('abcdef')]
f8eddae4b2f9afb94a01c7d8c0f8aa06.png
c3e1a3e7490594eebb63a1ed71c7f0c2.png

2、性质

#取一列d1['age'] #为Series对象,返回索引为原DataFrame的索引,等价于d1.age#0 241 652 343 804 125 28Name: age, dtype: int64#取一行d1.ix[3]#age 80city ShangHaigender 0Name: 3, dtype: objectd1.loc[3] #取行做使用.loc或者.iloc。#age 80city ShangHaigender 0Name: 3, dtype: object#赋值修改d3.name = '李四'#新加入一类d1['is_men'] = d1.geder==1s1.values #array格式数据
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值