pandas 常用方法使用示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #生成DataFrame,保存至文件 from pandas import DataFrame import numpy as np import pandas as pd t={ "称呼" : [ "爸爸" , "妈妈" , "宝宝" ], "年龄" : [18, 30, np.nan], "性别" : [None, "male" , "female" ], "生日" : [ "2000-02-10" , "1988-10-17" , None] } df =DataFrame(t) df.to_csv( "Result.csv" ,header=1,index=0) #保存列名、不保存行索引 |
1 2 3 4 5 6 | #读取文件,生成DataFrame import pandas as pd df = pd.read_csv( "Result.csv" ) #扩展名也可不是 .csv print(df) print(df.isnull()) |
1 2 3 4 5 6 7 | #显示“年龄”列,行号1,2的单元格,求和 import pandas as pd df = pd.read_csv( "Result.csv" ) print(df.loc[[0,1],[ '年龄' ]]) print(type(df.loc[[0,1],[ '年龄' ]])) print(df.loc[[0,1],[ '年龄' ]].sum()) |
1 2 3 4 5 6 | #将DataFrame中的空值设为0 import pandas as pd df = pd.read_csv( "Result.csv" ) df.fillna(0,inplace = True) print(df) |
1 2 3 4 5 6 | #插入列 import pandas as pd df = pd.read_csv( "Result.csv" ) df.insert(loc=2, column= '插入列' , value= "插队" ) print(df) |
或: df.loc[:,新列名]=值
1 2 3 4 5 6 7 8 9 10 11 | #插入行(实际是两个表在纵轴方向上拼接)并去除重复数据行 import pandas as pd df = pd.read_csv( "Result.csv" ) df1=DataFrame({ "插入行" : [ "插入1" , "插入1" , "插入1" ] }) pd.concat([df1,df2],ignore_index = True) #当两个表中有重叠的数据时,使用drop_duplicates()去除重复数据 pd.concat([df1,df2],ignore_index = True).drop_duplicates() print(df) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #根据现有列生成新的列 import pandas as pd from pandas import DataFrame def getlevel(年龄): if 年龄 > 25: return "老" elif 年龄 > 15: return "中" else : return "青" df = pd.read_csv( "Result.csv" ) # df['level'] = df.apply(lambda x: getlevel(x['年龄']), axis=1) df[ 'level' ] = df.apply(lambda x: getlevel(x.年龄), axis=1) print(df) |
1 2 | #删除列 df.drop(axis = 0, index=[0], inplace=True) |
1 2 | #列改名,a,b变为A,B df.rename(columns={ "A" : "a" , "B" : "c" },inplace=True) |
修改单元格,记忆公式:
单值修改:df.loc[行索引,列索引]
单行修改:df.loc[行索引]或df.iloc[行索引];
单列修改:df[列索引]、df.loc[:,列索引]或df.iloc[:,列索引]
按条件修改: df.loc[[筛选后的DataFrame].index,列索引]
mask(条件判断,条件成立的值)
where(条件判断,条件不成立的值)
1 2 3 4 5 6 7 8 9 | #修改单元格:在指定列中找符合条件的单元格,对于这些单元格所在行,修改与指定列相交的单元格的值 import pandas as pd from pandas import DataFrame df = pd.read_csv( "Result.csv" ) df.loc[df[ "称呼" ]== '爸爸' ,[ '称呼' , '年龄' ]]= 'father' print(df) |
1 2 3 4 5 6 7 8 9 10 11 12 | #使用正则修改替换1 import pandas as pd from pandas import DataFrame df = pd.read_csv( "Result.csv" ) df[ '称呼' ]=df[ '称呼' ].str.replace( pat= '^(爸+)$' , repl=lambda x: '0' *(4-len(x[0]))+x[0]+ 'ok' , regex=True ) print(df) |
1 2 3 4 5 6 7 8 9 10 11 12 | #使用正则修改替换2 import pandas as pd df = pd.read_csv( "Result.csv" ) df.replace( '^(爸+)$' , r '\1神了' , regex=True, inplace=True ) print(df) |
1 2 | #转置 df=df.T |
1 2 3 4 5 6 | #移动整行 import pandas as pd from pandas import DataFrame df = pd.read_csv( "Result.csv" ) df.iloc[0, :] = df.iloc[0, :].shift(-1) |
1 2 3 4 5 6 7 8 | #移动部分单元格 import pandas as pd from pandas import DataFrame df = pd.read_csv( "Result.csv" ) print(df) df.iloc[0, 1:2] = df.iloc[0, 1:2].shift(-1) print(df) |
concat(): 连接操作,可以连接多个DataFrame,可以设置按行合并还是按列合并。有inner、outer、left、right四种不同的连接方式。可以对结果的索引进行设置,尤其是对多重行索引的处理提供了多种方式。
merge(): 合并操作,只能用于合并两个DataFrame,且都是按列进行合并,只有当两个DataFrame的列名完全一样时才是按行合并的效果。合并时根据指定的连接列(或行索引)和连接方式来匹配两个DataFrame的行。可以在结果中设置相同列名的后缀和显示连接列是否在两个DataFrame中都存在。
join(): 加入操作,可以在一个DataFrame中加入多个DataFrame,结果都是按列进行合并的。合并时根据指定的连接列(或行索引)和连接方式来匹配两个DataFrame的行,也可以设置相同列名的后缀,所以有时候join()和merge()可以相互转换。
combine(): 联合操作,用于两个DataFrame,按列的方式进行联合。联合操作是将一个DataFrame中的部分数据用另一个DataFrame中的数据替换或补充,通过一个函数来定义联合时取数据的规则。在联合过程中还可以对空值进行填充。
append(): 添加操作,可以将多个DataFrame添加到一个DataFrame中,按行的方式进行添加。添加操作只是将多个DataFrame按行拼接到一起,可以重设行索引。
Pandas 创建一个空的Dataframe 并向其添加行与列(https://blog.csdn.net/qq_53817374/article/details/123771713)
Pandas将列表(List)转换为数据框(Dataframe)进阶篇 https://blog.csdn.net/weinsheimer/article/details/120916336
参考:https://www.cnblogs.com/testzcy/p/12077820.html
https://blog.csdn.net/m0_62011685/article/details/124827501
https://blog.csdn.net/z099164/article/details/122702675
https://blog.csdn.net/weixin_42322206/article/details/124226550
https://www.cjavapy.com/article/774/#google_vignette
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2020-02-24 C#选择文件(OpenFileDialog)、选择文件夹(FolderBrowserDialog)
2020-02-24 无法嵌入互操作类型“Microsoft.Office.Interop.Word.ApplicationClass”。请改用适用的接口。