pu369com

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

posted on   pu369com  阅读(53)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 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”。请改用适用的接口。
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示