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 男 0831 北京
b zs 22 男 0831 上海
c lh 21 女 0831 北京
当给一个值时,可将所有元素的address改为同一个值
df['address'] = '北京'
print(df)
输出:
name age gender class address
a ss 20 男 0831 北京
b zs 22 男 0831 北京
c lh 21 女 0831 北京
使用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 男 0831 北京
b zs 22 男 0831 北京
c lh 21 女 有问题 北京
Original: https://blog.csdn.net/Zachary579/article/details/112251017
Author: Zachary579
Title: Python(数据分析篇)— Pandas框架【一】DataFrame数据创建以及元素的增删改查
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/740997/
转载文章受原作者版权保护。转载请注明原作者出处!