栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Pandas DataFrame创建、增、删、改、查、并操作合集(更新中)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Pandas DataFrame创建、增、删、改、查、并操作合集(更新中)

本文代码在python 3.9.7,pandas 1.3.4下编译通过

文章目录
  • 一、Pandas DataFrame的创建
    • 1. 基于列表、字典或Numpy数组创建DataFrame
    • 2. 基于.xlsx文件或.csv文件读取Dataframe
  • 二、Pandas Dataframe 的增、删、改、查、并等基本操作


一、Pandas DataFrame的创建

创建DataFrame即由获取的原数据类型(或数据文件)转为DataFrame,情况1是数据已在程序中以列表、字典或Numpy数组存储,情况2是数据在.xlsx文件或.csv文件中存储。

1. 基于列表、字典或Numpy数组创建DataFrame

列表示例:

import pandas as pd
import numpy as np
data = [['Marvin',10],['Leo',12],['Teresa',13]]
df_list = pd.DataFrame(data,columns=['Name','Age'])

字典示例:

df_dict=pd.DataFrame({'Value1':['A','B','C','D'],'Value2':['aaa','bbb','ccc','ddd']})

Numpy数组示例:

df_numpy = pd.DataFrame(np.ones((4, 4))*1, columns=list('DCBA'), index=list('4321'))
2. 基于.xlsx文件或.csv文件读取Dataframe

xlsx文件示例:

dataFormat=['Class','Name','Sex']
datafileStr=r'F:abc123.xlsx'
dframe=pd.read_excel(datafileStr,names=dataFormat,header=0)
## header=0则不读取excel文件的第一行(标题行)

csv文件示例:

dataFormat=['Class','Name','Sex']
datafileStr=r'F:abc123.csv'
dframe=pd.read_csv(datafileStr,names=dataFormat)
## csv文件中无数据列名称
二、Pandas Dataframe 的增、删、改、查、并等基本操作

DataFrame增删改查代码如下(示例):

#定义DataFrame
dataSet=pd.DataFrame([[1,2,3,4],[2,3,4,5]],columns=['a','b','c','d'])
print(dataSet)

#追加一行
dataAddRow=pd.DataFrame([[5,6,7,8]],columns=['a','b','c','d'])
dataSet=pd.concat([dataSet,dataAddRow])
dataSet.reset_index(drop=True,inplace=True)
print(dataSet)
#追加一列
dataAddCol=pd.DataFrame({'e':[11,12,12]})
dataSet=pd.concat([dataSet,dataAddCol],axis=1)
print(dataSet)

#删除一行
dataSet.drop([0],inplace=True)
print(dataSet)
#删除一列
dataSet.drop([dataSet.columns[0]],inplace=True,axis=1)#仅知道列号
dataSet.drop(['b'],inplace=True,axis=1)#知道列名
print(dataSet)

#插入一行(需要借助numpy)
#保持原columns与index不变
insert_row=1
dataSet=pd.DataFrame(np.insert(dataSet.values,0,values=[1,2,3],axis=0),
                     index=np.insert([x for x in dataSet.index[:]],insert_row,values=insert_row,axis=0),
                     columns=dataSet.columns)
print('row_insert')
print(dataSet)
#插入一列
dataSet.insert(1,'e',[1,4,7],allow_duplicates=True)
print(dataSet)

#替换一行=删除一行+插入一行
#替换一列=删除一列+插入一列
#替换单元格数值
dataSet.iloc[0,0]=30
dataSet.loc[1,'e']=25
print(dataSet)

#按行索引返回行
choose_row=dataSet[dataSet.index==1]
print('choose_row')
print(choose_row)
#按行列索引返回单元格数值
print(dataSet.loc[1,'e'])
#在一列中查找数值,返回行索引
find_row=dataSet[dataSet['c']>20]
print('find_row')
print(len(find_row.index))#检验是否找到相应数值
print(find_row)
print(find_row.index[0])

#行列转置
print('transpose')
print(dataSet.transpose())

#按给定列排序
dataSet.sort_values('d',axis=0,ascending=False,inplace=True)
print('sort')
print(dataSet)
#按给定列标准筛选
dataSet_screen=dataSet[dataSet['d']>2]
print('screen')
print(dataSet_screen)

DataFrame合并代码如下(示例):

df1 = pd.DataFrame(np.ones((4, 4))*1, columns=list('DCBA'), index=list('4321'))
df2 = pd.DataFrame(np.ones((4, 4))*2, columns=list('FEDC'), index=list('6543'))
dfc = pd.concat([df1,df2])
print(dfc)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879529.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号