pandas常用方法

1、了解

1.1 DataFrame和Series关系

pandas读取数据会返回一个 DataFrame的数据结构,查看某一列或者某一行的数据类型,会返回一个 Series的数据机构,也就是 SeriesDataFrame的组成单元。

1.2 df.iloc[]和df.loc[]区别

df.iloc[]利用具体的索引值获取行,只能是整型,
比如获取前三行:df.iloc[:3]
df.loc[]利用索引的名称获取行和列
如果设置了某一列为索引,然后利用df.loc[],就可以拿到指定索引的行,如果索引不在,就会报KeyError,
1.2.1 例如创建一个Series(和DataFrame查找方法一样)
import pandas as pd
s = pd.Series(np.nan, index=[49, 48, 47, 46, 45, 1, 2, 3, 4, 5])
print(s)

49   NaN
48   NaN
47   NaN
46   NaN
45   NaN
1    NaN
2    NaN
3    NaN
4    NaN
5    NaN

1.2.2 利用iloc和loc查询

print(s.iloc[:6])

49   NaN
48   NaN
47   NaN
46   NaN
45   NaN
1    NaN

print(s.loc[:6])

keyError: 6

1.2.3 根据索引内容,查找对应的索引数值
df = pd.DataFrame(np.nan,
                  index=list('abcde'),
                  columns=['x', 'y', 'z', 8, 9])
print(df)

    x   y   z   8   9
a NaN NaN NaN NaN NaN
b NaN NaN NaN NaN NaN
c NaN NaN NaN NaN NaN
d NaN NaN NaN NaN NaN
e NaN NaN NaN NaN NaN

df_select = df.iloc[:df.index.get_loc('c') + 1, :4]
print(df_select)

    x   y   z   8
a NaN NaN NaN NaN
b NaN NaN NaN NaN
c NaN NaN NaN NaN

2、预览表格

2.1 查看前五行

import pandas as pd
df=pd.read_csv('test.csv')

df.head()

2.2 查看后五行

df.tail()

3、查看列名和索引

3.1 列名查看

df.colums

3.2 索引查看

df.index

4、将DataFram数据类型转换为Numpy

df.values

5、获取某一列数据

res=df[列名]

res[:5]

6、获取某一行数据

df.iloc[索引名]

7、设置某一列为索引

df.set_index(列名)

8、创建DataFrame


data = {'A':[1,2,3],
       'B':['a','b','c']}
df_create = pd.DataFrame(data)

9、创建Series

col = [i for i in range(5)]
s = pd.Series(data=col)

10、合并两个DataFrame

10.1 两个相同形状的df


df_a = pd.DataFrame({'id':['K0','K1','K2','K3'], 'A':['A0','A1','A2','A3'], 'B':['BO','B1','B2','B3']})
df_b = pd.DataFrame({'id':['K0','K1','K2','K3'], 'C':['CO','C1','C2','C3'],'D':['DO','D1','D2','D3']})
res = pd.merge(df_a, df_b, on='id')
res
"""
    id   A  B   C   D
0   K0  A0  BO  CO  DO
1   K1  A1  B1  C1  D1
2   K2  A2  B2  C2  D2
3   K3  A3  B3  C3  D3
"""

10.2 形状不同的df

df_a = pd.DataFrame({'id1':['K0','K1','K2','K3'],
                     'id2':['K0','K1','K2','K3'],
                     'A':['A0','A1','A2','A3'],
                     'B':['BO','B1','B2','B3']})
df_b = pd.DataFrame({'id1':['K0','K1','K2','K3'],
                     'id2':['K0','K1','K2','K4'],
                     'C':['C0','C1','C2','C3'],
                     'D':[' DO','D1','D2','D3']})
res = pd.merge(df_a, df_b, on=['key1', 'key2'])
print(res)

"""
    id1 id2 A   B   C   D
0   K0  K0  A0  BO  C0  DO
1   K1  K1  A1  B1  C1  D1
2   K2  K2  A2  B2  C2  D2
"""

10.3 纵向合并

纵向合并数据 pd.concat([df1,df2, ...], axis=0, ignore_index=True)重置索引,axis=1则是水平合并,与Numpy有很多相似的地方。

11 查看有多少行数据


len(df)

df.shape

df.info()

12、空值相关

12.1 显示有空值的行


res_df=df[df.isnull().T.any()==True]

12.2 显示没有空值的行


res_df=df[df.isnull().T.any()==False]

13 根据某一列的内容找对应的行


target=df.query('name==bob')

14 找某两列的内容同时满足的行

search_se= df.loc[df['jpg_name']=='img_id','item_name']=="身高"

search_index = search_se[search_se == True].index

target_dataframe = df.loc[search_index]

15、获取多个sheet的名字

sheet_name=df.keys()
sheet_1_df=df[sheet_name[0]]

16、读取时,只选指定的列


pd.read_csv(read_path_6,usecols=[2,5,6])

17、读取多个sheet


指定参数sheet_name=None,则会读取所有的
pd.read_csv(read_path_6,sheet_name=None,usecols=[2,5,6])

Original: https://blog.csdn.net/weixin_42726887/article/details/124856802
Author: OnTheOurWay
Title: pandas常用方法

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

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

(0)

大家都在看

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