1、了解
1.1 DataFrame和Series关系
pandas读取数据会返回一个 DataFrame的数据结构,查看某一列或者某一行的数据类型,会返回一个 Series的数据机构,也就是 Series是 DataFrame的组成单元。
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/
转载文章受原作者版权保护。转载请注明原作者出处!