Python(数据分析篇)— Pandas框架【一】DataFrame数据创建以及元素的增删改查

pandas主要分为如下几个阶段:

首先,导入相应模块

import pandas as pd
import numpy as np

dataframe是一种表格型数据结构,拥有axis=0,axis=1(),所以dataframe类型肯定是二维的

  • 方法一:
df = pd.DataFrame(data=[['ss',20,'男','0831'],['zs',22,'男','0831'],['lh',21,'女','0831']], index=['a','b','c'], columns=['name','age','gender','class'])

说明:

  • 方法二:
pd.DataFrame(data={
    'name':['ss','zs','lh'],
    'age':[20,22,21],
    'gender':['男','男','女'],
    'class':['0831','0831','0831']
})

生成的表格:

ageclassgendername0200831男ss1220831男zs2210831女lh

1.结构

print('结构:',df.shape)
结构: (3, 4)

2.维度

print(df.ndim)

3.元素个数

print(df.size)
12

4.元素类型

print(df.dtypes)
name      object
age        int64
gender    object
class     object
dtype: object

5.查看列索引

print(df.columns)
Index(['name', 'age', 'gender', 'class'], dtype='object')

6.查看行索引

print(df.index)
Index(['a', 'b', 'c'], dtype='object')

7.查看数据

print(df.values)
print(type(df.values))
[['ss' 20 '男' '0831']
 ['zs' 22 '男' '0831']
 ['lh' 21 '女' '0831']]
<class 'numpy.ndarray'>
</class>

1、dataframe查找

df['name']

df[['name']]

输出结果:仅有一列值的表格

nameassbzsclh

语法:df.loc [ 行索引名称/条件,列的索引名称 ]


df.loc['a',:]
df.loc[['a','b'],'name']

输出:

a    ss
b    zs
Name: name, dtype: object

行(列)两个都传入列表类型,返回二维dataframe类型

print(df.loc[['a','b'],['name','age']])

输出:

  name  age
a   ss   20
b   zs   22

使用mask,生成bool值表格,根据布尔值取值


mask = df['age']>18
print(mask)
df.loc[mask,'name']
df.loc[mask,['name','class']]

布尔值mask表格:

a    True
b    True
c    True
Name: age, dtype: bool

根据mask取出的表格:

nameclassass0831bzs0831clh0831

例2:
mask可以联合使用,使用逻辑符进行连接


mask1 = df['age']>18
mask2 = df['gender'] == '女'
mask = mask1 & mask2
df.loc[mask,:]

nameagegenderclassclh21女0831

df.iloc[行的位置索引,列的位置索引]


df.iloc[-1,:].index
Index(['name', 'age', 'gender', 'class'], dtype='object')

2、dataframe增加方法


df['address'] = ['北京','上海','北京']
print(df)

输出:

  name  age gender class address
a   ss   20      &#x7537;  0831      &#x5317;&#x4EAC;
b   zs   22      &#x7537;  0831      &#x4E0A;&#x6D77;
c   lh   21      &#x5973;  0831      &#x5317;&#x4EAC;

当给一个值时,可将所有元素的address改为同一个值

df['address'] = '北京'
print(df)

输出:

  name  age gender class address
a   ss   20      &#x7537;  0831      &#x5317;&#x4EAC;
b   zs   22      &#x7537;  0831      &#x5317;&#x4EAC;
c   lh   21      &#x5973;  0831      &#x5317;&#x4EAC;

使用append方法

df_mini = pd.DataFrame(data={
    'name':['ss','zs','lh'],
    'age':[20,22,21],
    'gender':['男','男','女'],
    'class':['0831','0831','0831']})

df2 = df.append(df_mini,ignore_index=True)

说明:

3、dataframe删除方法

语法:df.drop(labels, axis=0, level=None, inplace=False, errors=’raise’)
说明:


df2.drop(labels=['address','class'],axis=1)

返回删除之后的表格

agegendername020男ss122男zs221女lh320男ss422男zs521女lh


df2.drop(labels = [0,1,2],axis=0)

删除行还是列,根据axis决定

addressageclassgendername3NaN200831男ss4NaN220831男zs5NaN210831女lh

4、dataframe更该数值方法


df.loc[df['name']=='lh','class'] = '有问题'
print(df)

输出:

  name  age gender class address
a   ss   20      &#x7537;  0831      &#x5317;&#x4EAC;
b   zs   22      &#x7537;  0831      &#x5317;&#x4EAC;
c   lh   21      &#x5973;   &#x6709;&#x95EE;&#x9898;      &#x5317;&#x4EAC;

Original: https://blog.csdn.net/Zachary579/article/details/112251017
Author: Zachary579
Title: Python(数据分析篇)— Pandas框架【一】DataFrame数据创建以及元素的增删改查

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/740997/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球