pandas入门使用

编程入门 行业动态 更新时间:2024-10-05 01:23:43

pandas<a href=https://www.elefans.com/category/jswz/34/1770026.html style=入门使用"/>

pandas入门使用

一、基本概念

import pandas as pd

基于字典创建dataframe对象,注意DF要大写,key为列名 列表内容为每一行的值

df = pd.DataFrame({"Name":['people1', 'people2'],"Age" :[18, 19]
})
df  
NameAge
0people118
1people219

列被称作column,行被称作row 每一列都是一个Series对象,整体是DataFrame对象


访问其中的一列

name = df['Name']
name
0    people1
1    people2
Name: Name, dtype: object
type(name)
pandas.core.series.Series

对series使用函数

df['Age'].max()
19

数值型数据的统计信息

df.describe()
Age
count2.000000
mean18.500000
std0.707107
min18.000000
25%18.250000
50%18.500000
75%18.750000
max19.000000
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 2 columns):#   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 0   Name    2 non-null      object1   Age     2 non-null      int64 
dtypes: int64(1), object(1)
memory usage: 160.0+ bytes

小结:dataframe的创建、series的生成和使用函数、数值型column的基本信息

二、打开文件

pandas支持打开多种格式的文件:csv excel sql json等为dataframe结构

用head方法可以访问前面的指定的行,而且是dataframe结构

test = pd.read_csv('test_text.csv')  
test.head(2)
Unnamed: 0微博id微博发布时间发布人账号微博中文内容微博图片微博视频
00445606899218216001月01日 23:38-精緻的豬豬女戰士-#你好2020#新年第一天元气满满的早起出门买早饭结果高估了自己抗冻能力回家成功冻发烧(大概...['...[]
11445642417842725001月02日 23:09liujunyi88大宝又感冒鼻塞咳嗽了,还有发烧。队友加班几天不回。感觉自己的情绪在家已然是随时引爆的状态。情...[][]

获取列名

test.columns
Index(['Unnamed: 0', '微博id', '微博发布时间', '发布人账号', '微博中文内容', '微博图片', '微博视频'], dtype='object')

获取数据类型

test.dtypes
Unnamed: 0     int64
微博id           int64
微博发布时间        object
发布人账号         object
微博中文内容        object
微博图片          object
微博视频          object
dtype: object

转换为excel

test.head(5).to_excel('test_text.xlsx', sheet_name='test', index=False)  # 要安装相关的依赖包
pd.read_excel('test_text.xlsx', sheet_name='test')

三、表格子集

列选的方式

test[['微博中文内容']].head(3)  # 所以head可以作用域df和series
微博中文内容
0#你好2020#新年第一天元气满满的早起出门买早饭结果高估了自己抗冻能力回家成功冻发烧(大概...
1大宝又感冒鼻塞咳嗽了,还有发烧。队友加班几天不回。感觉自己的情绪在家已然是随时引爆的状态。情...
2还要去输两天液,这天也太容易感冒发烧了,一定要多喝热水啊?
test['微博中文内容'].head(3).to_csv('hello.csv')

当访问超过1列时返回dataframe结构

test[['微博发布时间', '微博中文内容']].head(2)
微博发布时间微博中文内容
001月01日 23:38#你好2020#新年第一天元气满满的早起出门买早饭结果高估了自己抗冻能力回家成功冻发烧(大概...
101月02日 23:09大宝又感冒鼻塞咳嗽了,还有发烧。队友加班几天不回。感觉自己的情绪在家已然是随时引爆的状态。情...

选取特定的行-类似于sql where

df
NameAge
0people118
1people219
df[df['Age']>18]  # 逐行检查
NameAge
1people219

df[df['Age'].isin([18,19])]  # 闭区间,注意isin的点和括号
NameAge
0people118
1people219

去除空行

train_label = pd.read_csv('100k_train.csv')
train_label.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 100000 entries, 0 to 99999
Data columns (total 7 columns):#   Column  Non-Null Count   Dtype 
---  ------  --------------   ----- 0   微博id    100000 non-null  int64 1   微博发布时间  100000 non-null  object2   发布人账号   100000 non-null  object3   微博中文内容  99646 non-null   object4   微博图片    100000 non-null  object5   微博视频    100000 non-null  object6   情感倾向    99919 non-null   object
dtypes: int64(1), object(6)
memory usage: 5.3+ MB
train_label[train_label['微博中文内容'].notna()].info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 99646 entries, 0 to 99999
Data columns (total 7 columns):#   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 0   微博id    99646 non-null  int64 1   微博发布时间  99646 non-null  object2   发布人账号   99646 non-null  object3   微博中文内容  99646 non-null  object4   微博图片    99646 non-null  object5   微博视频    99646 non-null  object6   情感倾向    99566 non-null  object
dtypes: int64(1), object(6)
memory usage: 6.1+ MB

特定的行和列

train_label[['微博中文内容']].head(3)
微博中文内容
0写在年末冬初孩子流感的第五天,我们仍然没有忘记热情拥抱这2020年的第一天。带着一丝迷信,早...
1开年大模型…累到以为自己发烧了腰疼膝盖疼腿疼胳膊疼脖子疼#Luna的Krystallife#?
2邱晨这就是我爹,爹,发烧快好,毕竟美好的假期拿来养病不太好,假期还是要好好享受快乐,爹,新...
train_label.loc[train_label['情感倾向']=='1', '微博中文内容']  # 逗号之前是条件,之后是选择的内容,default为全表,条件和选择的内容都可以是list
2        邱晨这就是我爹,爹,发烧快好,毕竟美好的假期拿来养病不太好,假期还是要好好享受快乐,爹,新...
3                           新年的第一天感冒又发烧的也太衰了但是我要想着明天一定会好的?
4        问:我们意念里有坏的想法了,天神就会给记下来,那如果有好的想法也会被记下来吗?答:那当然了。...
9        新年第一天,为自己鼓掌??????发烧了也要来看线下演出!因为热爱,所以才会克服困难线上演出...
13              哎,新年第一天发烧感冒,也是够够的,头都没开好,希望新的一年顺顺利利的???????...                        
99987    近日,斯坦福大学医学院神经外科专家与香港大学中医药学院专家联合发表论文,证明甘草酸可以与AC...
99988    海南海药已完成瑞德西韦制剂第一批生产海南海药(000566)2月14日晚间公告,公司积极响应...
99989    问卫光生物(002880):请问,在东方财富股吧的贵公司的论坛看到,有关深圳卫健委治疗新型冠...
99992    儿科医生鱼小南#育儿专家说#【体温扫描仪在检测新型冠状病毒感染者方面是有效的吗?】是的,体...
99998    【新冠疫情最受关注的十一篇英文核心期刊论文全解析】本文整理了关于新型冠状病毒最受关注的十一篇...
Name: 微博中文内容, Length: 25392, dtype: object
train_label.iloc[2:5, 3:5]  # 有开区间
微博中文内容微博图片
2邱晨这就是我爹,爹,发烧快好,毕竟美好的假期拿来养病不太好,假期还是要好好享受快乐,爹,新...['...
3新年的第一天感冒又发烧的也太衰了但是我要想着明天一定会好的?['...
4问:我们意念里有坏的想法了,天神就会给记下来,那如果有好的想法也会被记下来吗?答:那当然了。...[]

修改选定部分的内容

train_label.iloc[2:5,3]="hello"
train_label.head(5)
微博id微博发布时间发布人账号微博中文内容微博图片微博视频情感倾向
0445607202912550001月01日 23:50存曦1988写在年末冬初孩子流感的第五天,我们仍然没有忘记热情拥抱这2020年的第一天。带着一丝迷信,早...['...[]0
1445607416748098001月01日 23:58LunaKrys开年大模型…累到以为自己发烧了腰疼膝盖疼腿疼胳膊疼脖子疼#Luna的Krystallife#?[][]-1
2445605425326452001月01日 22:39小王爷学辩论o_Ohello['...[]1
3445606150912647001月01日 23:08芩鎟hello['...[]1
4445597932252819001月01日 17:42changlwjhello[][]1

关于子集的小结:
1、列选:df [ [‘column1, column2’] ]
2、索引:df.iloc( [1:5, 3:6] ) 1-5行,3-6列 右开区间
3、筛选:条件表达式、 isin()、notna()
ps:拼接方法:pd.concat([c1, c2, c3],axis=0)
ps: 直接去空:df.dropna()

更多推荐

pandas入门使用

本文发布于:2024-03-23 17:40:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1740942.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:入门   pandas

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!