pandas学习一

series [ˈsɪəriːz] 系列 级数

创建pandas对象方法及数据访问

import pandas as pd
s1 = pd.Series([1, 2, 3]) # 默认创建索引
print(s1)
print(s1.index)
s2 = pd.Series({‘山东’: 1.1, ‘北京’: 1.2}) # 隐式指定索引和数据
s3 = pd.Series(data=[2.4, 5.6], index=[‘天津’, ‘上海’]) # 显示指定索引和数据
print(s2)
print(s3)
print(s2.index)

可以用整数索引或者标签索引访问数据,如下所示

print(s2[0])
print(s2[‘山东’])

Series如何增加元素,Series对象元素就是和字典一样

import pandas as pd
s1 = pd.Series({‘山东’: 1.1, ‘北京’: 1.2})
print(s1)
d1 = {‘山东’: 1.1, ‘北京’: 1.2}
print(d1)
d1.update({‘山西’: 0.3}) # 在字典中,用update增加一个键值对
print(d1)
s2 = s1.append(pd.Series({‘山西’: 0.3})) # 用append增加元素,但必须要用pd.Series构建
print(s1) # s1没有变化
print(s2) # s2从新创建了一个对象
print(s2[‘山西’])
newSeries = pd.Series({‘陕西’: 0.55, ‘广州’: 0.7})
s3 = s2.append(newSeries) # 用一个已有eries对象作为参数添加元素
print(s3)

Series如何删除元素(增加或删除,都会生成一个新的pandas对象)

import pandas as pd
d1 = {‘山东’: 1.1, ‘北京’: 1.2}

d1.pop(‘北京’) # 用pop函数删除一个字典元素

print(d1)

s1 = pd.Series(d1) # 直接用字典创建一个pandas对象
print(s1)
s3 = s1.drop(‘北京’) # 用drop方法删除一个pandas元素,也必须生成一个新的pandas对象
print(s3)
s4 = s1.append(pd.Series({‘北京’: 1.3})) # pandas对象元素可以重复
print(s4)
s5 = s4.drop(‘北京’) # 都会删除
print(s5)
print(‘北京’ in s4.index) # 北京是否在s4的里面,如果有,返回true,否则,返回false
if ‘山西’ in s4.index: # 删除的时候,需要判断,这样就不会抛出异常
s4.drop(‘山西’)

Series如何修改或者访问元素

import pandas as pd
d1 = {‘山东’: 1.1, ‘北京’: 1.5}

print(d1)

d1[‘山东’] = 1.8 # 字典元素修改

print(d1)

s1 = pd.Series(d1)
print(s1)
s1[‘山东’] = 1.8 # 修改pandas对象元素,不会创建新的对象
print(s1)

支持两种索引方法: 整数索引(相当于数组下标0,1,2…),标签索引(相当于字典的key)

print(s1[0])
print(s1[‘山东’])

dataframe对象两种构建方式,列表构建和字典构建

import pandas as pd

用列表构建

df = pd.DataFrame([[‘小红’, 2, 5],
[‘小张’, 7, 1]])
print(df)
df = pd.DataFrame([[‘小红’, 2, 5],
[‘小张’, 7, 1]], columns=[‘姓名’, ‘年龄’, ‘身高’]) # 添加列标签
df = pd.DataFrame([[‘小红’, 2, 5],
[‘小张’, 7, 1]], columns=[‘姓名’, ‘年龄’, ‘身高’], index=[‘page0’, ‘page2’]) # 添加行,列标签

用字典方式生成数据表(key+列表的方式)

df = pd.DataFrame({‘姓名’: [‘小红,小张’],
‘年龄’: [3, 5],
‘身高’: [1.43, 1.23]}, index=[‘page0’, ‘page1’])
print(df)

dataframe读取文件,并做相应处理

import pandas as pd
df = pd.read_csv(‘IMDB-Movie-Data.csv’)

print(df)

print(df.shape)

print(df.columns)

print(df.index)

print(df.head())

print(df.tail())

print(df.info())
print(df.describe())

给dataframe增加数据:方法1)增加一个series,2)增加一个dataframe

import pandas as pd

方法1)增加一个series

df = pd.DataFrame({‘姓名’: [‘小红,小张’],
‘年龄’: [3, 5],
‘身高’: [1.43, 1.23]}, index=[‘page0’, ‘page1’])
s1 = pd.Series({“姓名”: ‘jiang’, “年龄”: 4, “身高”: 1.56})

s1要合并到df中去,用append方法

s1.name = ‘index2’ # 这个name要转为行标签
df2 = df.append(s1)
print(df2)

给dataframe增加数据:方法1)增加一个series,2)增加一个dataframe

import pandas as pd

方法1)增加一个dataframe(分为行和列)

df = pd.DataFrame({‘姓名’: [‘小红,小张’],
‘年龄’: [3, 5],
‘身高’: [1.43, 1.23]}, index=[‘page0’, ‘page1’])
print(df)
df2 = df.append(df) # 行合并
print(df2)
df[‘分数’] = [69, 30] # 末尾增加1列
print(df)
df.insert(2, ‘籍贯’, [‘河北’, ‘莫旗’]) # insert直接按原有的数据框对象上
print(df)

给dataframe删除数据:删除某行,2)删除某列

import pandas as pd

方法1)增加一个dataframe(分为行和列)

df = pd.DataFrame({‘姓名’: [‘小红’, ‘小张’],
‘年龄’: [3, 5],
‘身高’: [1.43, 1.23]}, index=[‘page0’, ‘page1’])
df[‘分数’] = [69, 30] # 末尾增加1列
df.insert(2, ‘籍贯’, [‘河北’, ‘莫旗’]) # insert直接按原有的数据框对象上
print(df)
df2 = df.drop(‘年龄’, axis=1) # 删除一列,生成新的对象,并没有删除原有df对象
print(df2)
df3 = df2.drop(‘page0’, axis=0) # 删除一行
print(df3)

给访问dataFrame

使用场景: 1)访问某列或者某几列; 2)访问某行或者某几行;2)筛选出满足条件的行

import pandas as pd
df_imdb = pd.read_csv(‘IMDB-Movie-Data.csv’)
print(df_imdb)
print(‘*’ * 30)

访问某一列数据两种方法(iloc或者loc函数)

print(df_imdb.iloc[:, 1]) # 返回title列,用iloc函数,用的是【整数】索引
print(df_imdb.loc[:, ‘Title’]) # 返回title列,用loc函数,用的是【标签】索引

访问多列的方法

print(df_imdb.iloc[:, :3]) # 访问前3列
print(df_imdb.loc[:, [‘Title’, ‘Rank’, ‘Genre’]]) # 访问前3列

访问第一行数据

print(df_imdb.iloc[0]) # 整数索引
print(df_imdb.loc[0]) # 标签索引,注意,这个标签只不过是数值,但和数值表达的意思是不同的

访问5~10行数据

print(df_imdb.iloc[5:10])
print(df_imdb.loc[5:10])

根据列,筛选出满足条件的行 2014年上映并大于7.0的电影

df2 = df_imdb[(df_imdb[‘Year’] == 2014) & (df_imdb[‘Rating’] > 7.0)] # 必须加括号
print(df2.shape)

修改dataFrame数据

使用场景: 1)修改某个单元格; 2)修改某行;2)修改某列

import pandas as pd
df_imdb = pd.read_csv(‘IMDB-Movie-Data.csv’)
print(df_imdb)
print(‘*’ * 30)

修改某个单元格

df_imdb.loc[0, ‘Title’] = ‘Guardians of the Galaxy2’
print(df_imdb)

按条件修改某一行(如修改title)

df_s = df_imdb[(df_imdb[‘Year’] == 2014) & (df_imdb[‘Rating’] > 7)]
print(df_s.shape)
df_imdb.loc[(df_imdb[‘Year’] == 2014) & (df_imdb[‘Rating’] > 7),
‘Title’] += “-1” # loc方法,原数据会改变
print(df_imdb)

修改某一列

df_imdb[‘Title’] += ‘-1’
print(df_imdb)

dataframe行级遍历的两种方法 iterrows itertuples

import pandas as pd

df_imdb = pd.read_csv(‘IMDB-Movie-Data.csv’)
print(df_imdb.head())
print(‘*’ * 30)

def iterRowsBy1():
for i, row in df_imdb.iterrows(): # 执行效率低
print(i)
print(row)

iterRowsBy1()

def iterRowsBy2():
for nt in df_imdb.itertuples(): # 执行效率高
print(nt)

iterRowsBy2()

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你开始学习pandas时,以下是一个简单的学习路线: 1. 学习Python基础知识:在使用pandas之前,建议先掌握Python的基本语法和数据结构,例如列表、字典和函数等。 2. 安装pandas库:使用pip或conda等工具安装pandas库,并确保安装正确。 3. 学习pandas的数据结构:pandas主要提供了两种数据结构,即Series和DataFrame。了解它们的特点、创建方式和基本操作方法。 4. 数据导入与导出:学习如何从不同的数据源(如CSV、Excel、数据库等)中导入数据到pandas的DataFrame中,并将处理后的数据导出。 5. 数据清洗与预处理:学习如何处理缺失值、重复值、异常值等数据清洗操作,并进行数据类型转换、重命名列名等预处理操作。 6. 数据选择与过滤:学习如何使用pandas提供的方法选择和过滤DataFrame中的数据,包括使用标签、位置、条件等进行选择。 7. 数据排序与排名:学习如何对DataFrame中的数据进行排序和排名操作,以便更好地理解和分析数据。 8. 数据聚合与分组:学习如何使用pandas进行数据聚合和分组操作,包括使用聚合函数、分组键等进行数据分析。 9. 数据合并与连接:学习如何使用pandas进行多个DataFrame的合并和连接操作,以便进行更复杂的数据分析和处理。 10. 数据可视化:学习如何使用pandas结合matplotlib或其他可视化库进行数据可视化,以便更直观地展示和分析数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值