1. DataFrame的创建
(1)手动创建
1
2
3df = pd.DataFrame({'a':[1,2,3],'b':[1,2,3]}) print(df)
结果为:
1
2
3
4
5a b 0 1 1 1 2 2 2 3 3
(2)用panda导入文件数据
例如导入.csv类型的文件,导入之后直接变成了DataFrame类型的数据
1
2df = pd.read_csv('/file_path/file_name.csv')
2. DataFrame获取行数和列数
(1)获取行数
1
2df.shape[0]
(2)获取列数
1
2df.shape[1]
3. DataFrame类型数据的提取
因为DataFrame类型的数据通常量比较大,所以经常会提取前几行,后几行或者某一列,某一行。
(1)提取前5行
1
2df.head(5)
(2)提取后5行
1
2df.tail(5)
(3)提取某一列
1
2df['列名'].values
注:如果列名是数字也要加上单引号
(4)提取行
1
2
3df.iloc[2] # 取第二行 df.iloc[5:10] # 取第五行到第十行
4. 修改Dataframe列名(行名)的两种方法
(1)修改列名:
1
2
3
4
5
6
7
8
9
10
11
12
13
14首先新建一个Dataframe import pandas as pd df = pd.DataFrame({'a':[1,2,3],'b':[1,2,3]}) 如下: a b 0 1 1 1 2 2 2 3 3 1、修改列名a,b为A、B。 df.columns = ['A','B'] 2、只修改列名a为A,inplace=Ture,修改原数据 df.rename(columns={'a':'A'}, inplace=True)
(2)修改行名
1
2
3
4
5
6
7
8
9
10
11
12
13
14首先新建一个Dataframe import pandas as pd df = pd.DataFrame({'a':[1,2,3],'b':[1,2,3]}) 如下: a b 0 1 1 1 2 2 2 3 3 1、修改行名0,1,2为A、B、C。 df.index = ['A','B','C'] 2、只修改行名0为A,inplace=Ture,修改原数据 df.rename(index={0:'A'}, inplace=True)
5.将array和DataFrame的相互转换
(1)array转换为DataFrame
1
2df = pd.DataFrame(array_data)
(2)DataFrame转换为array
1
2
3
4
5
6
7# 方法一: data_array = np.array(df) # 方法二: data_array = df.as_matrix() # 方法三: data_array = df.values
6.DataFrame的转置
1
2df_T = df.T
例子:
1
2
3
4import pandas as pd df = pd.DataFrame({'a':[1,2,3],'b':[1,2,3]}) print(df)
结果:
1
2
3
4
5a b 0 1 1 1 2 2 2 3 3
接着:
1
2
3df_T = df.T print(df_T)
结果:
1
2
3
40 1 2 a 1 2 3 b 1 2 3
7.DataFrame删除指定的某行或者某列
(1)函数
1
2DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False)
(2)参数含义
∙
bullet
∙ labels:要删除的行或列,用列表给出
∙
bullet
∙ axis:默认为0,指要删除的是行,删除列时需指定axis为1
∙
bullet
∙ index :直接指定要删除的行,删除多行可以使用列表作为参数
∙
bullet
∙ columns:直接指定要删除的列,删除多列可以使用列表作为参数
∙
bullet
∙inplace: 默认为False,该删除操作不改变原数据;inplace = True时,改变原数据
(3)删除行或列的两种方式:
①通过参数labels和axis 来指定
②通过参数index或者columns来指定
(4)例子
①删除列
∙ bullet ∙通过labels参数和axis参数指定
∙
bullet
∙通过columns参数指定
②删除行
∙ bullet ∙通过labels和axis = 0来指定
∙
bullet
∙通过index参数直接指定
8.更改DataFrame的某些值
(1)更改DataFrame中的数据,原理是将这部分数据提取出来,重新赋值为新的数据。
(2)需要注意的是,数据更改直接针对DataFrame原数据更改,操作无法撤销,如果做出更改,需要对更改条件做确认或对数据进行备份
1
2
3
4
5
6
7
8
9
10
11
12
13import pandas as pd df1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age']) print("--------更换单个值----------") # loc和iloc 可以更换单行、单列、多行、多列的值 df1.loc[0,'age']=25 # 思路:先用loc找到要更改的值,再用赋值(=)的方法实现更换值 df1.iloc[0,2]=25 # iloc:用索引位置来查找 # at 、iat只能更换单个值 df1.at[0,'age']=25 # iat 用来取某个单值,参数只能用数字索引 df1.iat[0,2]=25 # at 用来取某个单值,参数只能用index和columns索引名称 print(df1)
9.插入新增列、行
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
32
33
34
35
36
37
38
39
40
41import pandas as pd df1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age']) print("----------在最后新增一列---------------") print("-------案例1----------") # 在数据框最后加上score一列,元素值分别为:80,98,67,90 df1['score']=[80,98,67,90] # 增加列的元素个数要跟原数据列的个数一样 print(df1) print("-------案例2----------") print("---------在指定位置新增列:用insert()--------") # 在gender后面加一列城市 # 在具体某个位置插入一列可以用insert的方法 # 语法格式:列表.insert(index, obj) # index --->对象 obj 需要插入的索引位置。 # obj ---> 要插入列表中的对象(列名) col_name=df1.columns.tolist() # 将数据框的列名全部提取出来存放在列表里 print(col_name) col_name.insert(2,'city') # 在列索引为2的位置插入一列,列名为:city,刚插入时不会有值,整列都是NaN df1=df1.reindex(columns=col_name) # DataFrame.reindex() 对原行/列索引重新构建索引值 df1['city']=['北京','山西','湖北','澳门'] # 给city列赋值 print(df1) print("----------新增行---------------") # 重要!!先创建一个DataFrame,用来增加进数据框的最后一行 new=pd.DataFrame({'name':'lisa', 'gender':'F', 'city':'北京', 'age':19, 'score':100}, index=[1]) # 自定义索引为:1 ,这里也可以不设置index print(new) print("-------在原数据框df1最后一行新增一行,用append方法------------") df1=df1.append(new,ignore_index=True) # ignore_index=True,表示不按原来的索引,从0开始自动递增 print(df1)
10. 用describe()来查看dataFrame指定列的统计信息
1
2
3df = pd.read_csv('nyc_taxi.csv') df
结果:
1
2
3# 运行describe()来查看value列 df.value.describe()
结果:
可以看到describe()描述了value列的数据量(count),均值(mean),标准差(std),最小值(min)一直到最大值(max),还有数据类型。
参考
最后
以上就是多情野狼最近收集整理的关于pandas中DataFrame的常用操作1. DataFrame的创建2. DataFrame获取行数和列数3. DataFrame类型数据的提取4. 修改Dataframe列名(行名)的两种方法5.将array和DataFrame的相互转换6.DataFrame的转置7.DataFrame删除指定的某行或者某列8.更改DataFrame的某些值9.插入新增列、行10. 用describe()来查看dataFrame指定列的统计信息的全部内容,更多相关pandas中DataFrame的常用操作1.内容请搜索靠谱客的其他文章。
发表评论 取消回复