文章目录

  • 前言
  • 一、Series结构与应用
    • 1.1 Series的构造
    • 1.2 创建Series
      • 1.2.1 可用于创建Series的类型
      • 1.2.2 三种设置index的方法
      • 1.2.3 Series中的index与value
    • 1.3 查询Series
      • 1.3.1 .loc[]和.iloc[]
      • 1.3.2 省略形式
      • 1.3.3 .iteritems()
    • 1.3.4 Series中查找最大值的index(.idxmax())
    • 1.4 Series的增删
      • 1.4.1 .drop()
      • 1.4.2 .append()
  • 二、DataFrame结构与应用
    • 2.1 DataFrame的构造
    • 2.2 创建DataFrame
      • 2.2.1 用Series创建:
      • 2.2.2 用a list(tuple) of dict创建
      • 2.2.3 csv导入数据(pd.read_csv())
      • 2.2.4 index和columns(set_index与rename()函数)
    • 2.3 查询DataFrame
      • 2.3.1 标题用.loc[]和.iloc[]查询
      • 2.3.2 省略形式与链式查询
      • 2.3.3 Boolean mask 查询与运算
    • 2.4 DataFrame的增删
      • 2.4.1 删除(.drop()与del())
      • 2.4.2 增添(.append()与直接命名)
  • 三、缺失值与数据处理
    • 3.1 MAR与MCAR
    • 3.2 处理缺失值(boolean mask, .fillna() 与.dropna())
    • 3.3 数据修改(replace()与regex)
    • 3.4 升/降序排列 sort_values()
  • 总结与下节预告

前言

pandas是基于numpy的数据处理常用模块,本周主要介绍Pandas模块的一些主要用法,包括Series和DataFrame两种数据结构,尤其是DataFrame的结构,pandas模块的数据读取方式pd.read_csv以及在做数据清洗的时候需要注意的缺失值的问题


提示:以下是本篇文章正文内容

一、Series结构与应用

1.1 Series的构造

 Series可以理解为list和dict的交叉,用另一种简单的可视化的方法来描述Series就是两列数据,

  • 第一行是特殊索引index(和dict的key十分相似,但index可以不唯一
  • 第二行是数值列

 需要注意的数值列具有他自己的标签并且可以根据 .name来获得这个属性(不是函数),这与字典不同,在合并多列数据时非常有用。

1.2 创建Series

1.2.1 可用于创建Series的类型

  • Series的创建多用一个类数组对象 (array-like object),比如list或者dict,关于list的字符类型,可以是int, float, str,也可以是他们的混合形式
    ( 注: Series中如果出现多个格式,他会upcasting,例如,int和float(或nan, not a number)会upcasting成float, int, float与object会upcasting成object)
a=[1,2,3]
print(pd.Series(a))b=[1,2,None]
print(pd.Series(b))c=['Alice',1,None]
pd.Series(c)--Outputs:

  • 在创建Series的时候,pandas会自动为这个Series创建一个从0开始的索引,并将这个Series的名字初始化为None
  • Series的index类型可以是多样且包容性强的,可以在int型的index中直接插入str型的数据,pandas会帮你自动匹配

1.2.2 三种设置index的方法

   1.更改Series的index属性:
   (注:这里需要特殊强调一下Series或者DataFrame中需要分清属性attribution还是功能method,如果是.index或.columns或.name这种属性,是不能加括号的,更改是在原数据结构上; 有括号的比如.drop()或 .rename()等是pandas中的功能,在pandas中并不会直接作用在原数据上,而是会建立一个副本完成操作后返回这个副本,原数据结构不做修改,下文DataFrame中还会提到,较为重要)

a=[1,2,None]
a=pd.Series(a)
a.index=['one','two','three']    #.index是属性,不加括号,要加括号的是函数
print(a)
--Outputs:

   2.创建时在pd.Series中添加index参数

s=pd.Series(['Physics','Chemistry','English'],index=('Alice','Jack','Molly'))
print(s)--Outputs:

   3.用dict创建

student_scroes={'Alice':'Physics','Jack':'Chemistry','Molly':'English'}
s=pd.Series(student_scroes)
print(s)--Outputs:

1.2.3 Series中的index与value

  • 创建Series时的list元素也可以包含tuples,Series的index值可以不唯一
    (注意:当index值不唯一时,不要用dict来创建Series,因为dict中的key值是唯一的!)
student_scroes={'Jack':'Physics','Jack':'Chemistry','Molly':'English'}
s=pd.Series(student_scroes)
print(s)
--Outputs:

  • 用dict生成Series时,index参数可以发挥重要作用,pandas会根据你的index去dict中匹配对应的值,如果没有找到对应的值,就会返回nan或者None,如下:
students_scores = {'Alice': 'Physics','Jack': 'Chemistry','Molly': 'English'}
s = pd.Series(students_scores, index=['Alice', 'Molly', 'Sam'])
print(s)--Outputs:

  • 在Series中,我们发现了很多值不存在的时候会被标记成NaN(not a number),需要指出的是nan和None不是等价的,甚至nan和nan也是不等价的,在判断的时候不能用==来匹配,而是应该使用np.isnan()函数来匹配
import numpy as np
print(np.nan == None)
print(np.nan == np.nan)
print(np.isnan(np.nan))--Outputs:
False
False
True

1.3 查询Series

1.3.1 .loc[]和.iloc[]

  针对pandas中Series和DataFrame的查询,最主要的是利用loc和iloc,区中的区别是
  ·loc是利用index查询
  ·iloc是利用index所在位置查询
  例如:

import pandas as pd
students_classes = {'Alice': 'Physics','Jack': 'Chemistry','Molly': 'English','Sam': 'History'}
s = pd.Series(students_classes)
print(s.loc['Molly'])
print(s.iloc[3])--Outputs:
'English'
'History'

1.3.2 省略形式

  在Series中,可以省略.loc或者.iloc来直接查询index或者index的位置(与DataFrame不同,DataFrame省略.loc时是查询列)但需要注意的是,这样是存在隐患的,如果index是数字,那么pandas可能会无法确定你输入的是index还是index的位置,就会报错:

import pandas as pd
students_classes = {'Alice': 'Physics','Jack': 'Chemistry','Molly': 'English','Sam': 'History'}
s = pd.Series(students_classes)
print(s[3])
print(s['Molly'])
print(s[['Molly','Jack']])--Outputs:
'History'
'English'Molly      English
Jack     Chemistry
dtype: object

  (注意:在Series和DataFrame中如果需要用省略模式查询多行或多列数据,需要加两个方括号[[]])

  (注意:当index是数字,那么pandas可能会无法确定你输入的是index还是index的位置)

class_code = {99: 'Physics',100: 'Chemistry',101: 'English',102: 'History'}
s = pd.Series(class_code)
s[0]--Outputs:
KeyError:0

  所以还是建议在日常中不要省略.loc来查询Series,养成良好的习惯。

1.3.3 .iteritems()

  可以使用.iieritems()的功能找到Series中的index和value对应关系的迭代器,并可以在其中队值进行更改:

class_code = {'Physics':100,'Chemistry':101,'English':102,'History':103}
s = pd.Series(class_code)
for index,value in s.iteritems():print(index,value)
for label, value in s.iteritems():s.loc[label]= value+2
print(s)
--Outputs:
Physics 100
Chemistry 101
English 102
History 103Physics      102
Chemistry    103
English      104
History      105
dtype: int64

  实际上,我们还可以用广播broadcast的方法对Series的值进行修改,顺便比较一下哪个更快吧,用%%timeit来记下时:

%%timeit -n 10
s=pd.Series(np.random.randint(0,1000,1000))
for label,value in s.iteritems():s.loc[label]=value+2
--Outputs:
141 ms ± 5.91 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
%%timeit -n 10
s=pd.Series(np.random.randint(0,1000,1000))
s+=2--Outputs:
521 µs ± 194 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

  可以很明显发现广播的速度是更快的

  • 如果不要index,直接用普通的循环也可以得到迭代器,但这样不方便对Series中的值进行修改:
for i in s:print(i)
--Outputs:
102
103
104
105

1.3.4 Series中查找最大值的index(.idxmax())

用.idxmax可以查看最大值所对应的index

table=pivot_table['nanmean']['First Tier Top University'].head()
print(table)
print(table.idxmax())--Outputs:

1.4 Series的增删

1.4.1 .drop()

  在查询的时候如果需要对数据进行删除可以用.drop()功能,参数为index值
   (注意:pandas的功能不会直接作用在原Series或DataFrame上,而是会生成一个副本,在上面完成操作后返回副本,需要修改Series或DataFrame的时候一定要“保存”一下修改的进度或者在部分有inplace参数的功能中加上inplace=True表示在原表直接修改)

#1.DROP()
student_major={'Alice':'Physics','Jack':'Chemistry','Molly':'English','Sam':'History'}
stu1=pd.Series(student_major)
print(stu1.drop('Alice'))--Outputs:

1.4.2 .append()

  需要增加数据可以用.append()功能,参数可以是DataFrame,Series (尤其要注意不可以是dict) 且append了DataFrame后自动编程DataFrame格式,.append()功能没有inplace参数。

#2.APPEND()
student_major=[{'Alice':'Physics','Jack':'Chemistry','Molly':'English','Sam':'History'}]stu2=pd.DataFrame(student_major)
print(stu2)
print(stu1.append(stu2))
--Outputs:

  最后查看一下stu1是否被改变:

  发现drop()和append()并没有改变stu1

二、DataFrame结构与应用

2.1 DataFrame的构造

  在概念上DataFrame是一个二维的Series结构,他有一个index和若干个column列,每一个列都有对应的标签。事实上,如果DataFrame视为一个二维矩阵,它的行和列的区别仅仅只是概念的区别而已,可以把DataFrame简单看作一个双轴的标记的数组(two-axes labeled array)。
  DataFrame是一个二维的Series结构,在DataFrame中的单独的行和列都是Series的格式,和Series一样,DataFrame的index值也可以是不唯一的。


  一旦取超过两行或者两列就会得到一个DataFrame

2.2 创建DataFrame

  与创建Series的方法类似,DataFrame主要有两种创建方式:

2.2.1 用Series创建:

  可以通过将每一行视为一条数据,用DataFrame串联起来,加上index就可以生成一个DataFrame,如下所示:

record1 = pd.Series({'Name': 'Alice','Class': 'Physics','Score': 85})
record2 = pd.Series({'Name': 'Jack','Class': 'Chemistry','Score': 82})
record3 = pd.Series({'Name': 'Helen','Class': 'Biology','Score': 90})
df = pd.DataFrame([record1, record2, record3],index=['school1', 'school2', 'school1'])--Outputs:

2.2.2 用a list(tuple) of dict创建

  这里需要强调,不是用dict创建,而是a list(tuple) of dict创建pandas中可以用dict来创建Series,但pd.DataFrame不能自动将者将dict转化为DataFrame,在a list(tuple) of dict转化为DataFrame的过程中list(tuple)中的每一个元素(dict)将被视为一条数据,key值会成为DataFrame的列名,如果有值不存在,则输出NaN。

students = [{'Name': 'Alice','Class': 'Physics','Score': 85},{'First Name': 'Jack','Class': 'Chemistry','Score': 82},{'Name': 'Helen','Class': 'Biology','Score': 90}]df = pd.DataFrame(students, index=['school1', 'school2', 'school1'])
#index参数这里可以用()也可以用[],并不影响df.head()--Outputs:

  有一种偷懒的办法就是在dict后面加上一个逗号,这样系统会默认生成一个tuple,就可以直接用这个tuple来生成DataFrame了。

students = {'Name': 'Alice','Class': 'Physics','Score': 85},print(students)
df = pd.DataFrame(students, index=['school1'])
df.head()
--Outputs:
({'Name': 'Alice', 'Class': 'Physics', 'Score': 85},)Class    Name    Score
school1 Physics Alice   85

2.2.3 csv导入数据(pd.read_csv())

  python处理csv数据时,常用pandas模块的pd.read_csv()将数据导入成为DataFrame格式,pandas会默认为导入的数据设置从0开始的自然数index,可以设置参数index_col来自定义index的列数,常用index_col=0,在查看导入数据时,可以用.head()来看前5行,也可以输入参数查看更多或更少:

df=pd.read_csv('datasets/Admission_Predict.csv',index_col=0)
df.head()--Outputs:

2.2.4 index和columns(set_index与rename()函数)

导入数据后,通过.index和.columns来查看index的值和列名(是属性不是功能)

print(df.index)
print(df.columns)--Outputs:
Int64Index([  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,...391, 392, 393, 394, 395, 396, 397, 398, 399, 400],dtype='int64', name='Serial No.', length=400)
Index(['GRE Score', 'TOEFL Score', 'University Rating', 'SOP', 'LOR ', 'CGPA','Research', 'Chance of Admit '],dtype='object')
  • 更换index
    用.set_index的方法来设置index,set_index也可以输入两维参数:
import pandas as pd
df=pd.read_csv('datasets/Admission_predict.csv',index_col=0)
df['Series number']=df.index
df=df.set_index('Chance of Admit ')
print(df.index)
df.head()
--Outputs:
Float64Index([0.92, 0.76, 0.72,  0.8, 0.65,  0.9, 0.75, 0.68,  0.5, 0.45,...0.64, 0.71, 0.84, 0.77, 0.89, 0.82, 0.84, 0.91, 0.67, 0.95],dtype='float64', name='Chance of Admit ', length=400)

也可以用reset_index让index变会从0开始的自然数序列

df=df.reset_index() #Chance of Admit就没了,所以说set_index()和reset_index()都是破坏性的
df.head()--Outputs:

  • 更换columns名
    想要更换columns名有两种方法:
    1.rename()函数将需要替换的名字和替换后的值以字典的形式输入.rename()的columns参数中:
#法1:用rename函数
new_df=df.rename(columns={'SOP':'Statement of Purpose','LOR':'Letter of Recommendation'})
new_df.head()--Outputs:

  这里需要注意,1.如果原column name上有多余的空格,是无法替换的,比如这里的’LOR’列实际上是’LOR ',多出来的空格导致列名无法被替换,所以在导入csv之后可以先把columns规范化处理,比如去空格,变小写之类。2.rename()函数作为功能,也是在副本上进行操作的,需要及时"保存"

  2.改变df.columns的属性值
例如想要将所有的columns去空格,变小写,可以直接对.columns的属性进行修改,strip()函数是去掉开头和结尾的空格,这里用到了LC表达式,对LC表达式的理解可以看W1P1,代码如下:

#法2:改变df.columns的属性值(strip()函数和LC表达式)
cols = df.columns
cols = [x.lower().strip() for x in cols]
df.columns = cols
df.head()--Outputs:

2.3 查询DataFrame

2.3.1 标题用.loc[]和.iloc[]查询

  和Series一样,DataFrame也可以用.loc[]和.iloc[]查询,.iloc[]是用二维矩阵的坐标查询,基本一致,但,loc[]有微小区别:
.loc[parameter1,parameter2]中第一个参数可以是行名,也可以是一个行名的list,但不能是位置数字(例如用0表示第一行)但有一点很特殊,第一个参数可以是切片符号':',用来表示所有行。第二个参数可以是列名,可以是列名的list,但不能是位置数字,也可以用':'。
我们可以将DataFrame看作是一个二维矩阵,每一个单独的行和单独的列都是Series,所以如果parameter1是行名或parameter2是列名,且仅返回一条数据,那么返回数据的格式是Series
其他情况下返回的都是DataFrame:

students = [{'Name': 'Alice','Class': 'Physics','Score': 85},{'First Name': 'Jack','Class': 'Chemistry','Score': 82},{'Name': 'Helen','Class': 'Biology','Score': 90},{'Name': 'Helen','Class': 'Biology','Score': 90}]
df = pd.DataFrame(students, index=['school1', 'school2', 'school1',0])
print(df.loc['school2'])
print(df.loc[['school2','school1']])
print(df.loc['school2',['Name','Class']])
print(df.loc[0,['Name','Class']])#此时0是index
print(df.loc[:,:])--Outputs:

2.3.2 省略形式与链式查询

  DataFrame和Series一样可以用省略形式来查询,参数是列名或者列名组成的list,如果需要查询行数据,可以用.T转置后在查询:

print(df[['Name','Class']])
print(df['Name'])
print(df.T['school1'])--Outputs:

  DataFrame可以用链式查询(chaining)的方法来查询数据,即df.loc[][],但并不建议这样做,一方面,chaining返回的是一个副本而不是原数据的视图,另一方面,这样做效率比较低而且在更改数据的时候可能会报错。

print(df.loc['school1']['Name'])
print(df.T['school1'].T['Name'])--Outputs:
school1    Alice
school1    Helen
Name: Name, dtype: objectschool1    Alice
school1    Helen
Name: Name, dtype: object

2.3.3 Boolean mask 查询与运算

  Boolean mask就是一个Boolean矩阵,每个值都是True或False,可用以下方法来创建:

import pandas as pd
df=pd.read_csv('datasets/Admission_Predict.csv')
df.columns=[x.strip().lower() for x in df.columns]
admit_mask=df['chance of admit']>0.7
admit_mask.head()--Outputs:
Serial No.
1     True
2     True
3     True
4     True
5    False
Name: chance of admit, dtype: bool

  利用Boolean mask和.where()功能,我们就可以把匹配的数据取出来,不匹配的数据标记NaN

df.where(admit_mask).head()--Outputs:

  如果需要去掉NaN,只要加上.dropna()就可以了

df.where(admit_mask).dropna().head()--Outputs:

  也可以直接用Boolean mask来做筛选,将不合规则的数据直接剔除:

df[df['chance of admit']>0.7].head()--Outputs:

  • Boolean Mask运算符: '&' and '|'

  Boolean Mask不能用and 和 or来运算,但可以通过运算符来实现合集和交集的运算,取交集用’&’,相当于and,取合集用 ‘|’ ,相当于or,在两个Boolean mask运算的时候要注意给每一个都要添加括号,否则就会报错:

#错误示范
df['chance of admit']>0.7 & df['chance of admit']<0.9#正确写法
((df['chance of admit']>0.7) & (df['chance of admit']<0.9)).head()--Outputs:
#正确结果
Serial No.
1    False
2     True
3     True
4     True
5    False
Name: chance of admit, dtype: bool

  如果嫌括号麻烦,也可以用.gt() (greater than)来表示大于某个值,用.lt()(less then)来表示小鱼某个值,可以省去括号,但注意不要连用.gt().lt()这显然是错误的!

#错误用法
df['chance of admit'].gt(0.7).lt(0.9).head()
#正确用法
(df['chance of admit'].gt(0.7) & df['chance of admit'].lt(0.8)).head() --Output:
#正确结果
Serial No.
1    False
2     True
3     True
4    False
5    False
Name: chance of admit, dtype: bool

  还可以用.isin()来判断,总结下即为以下三种格式:

#三种方法:df[df['toefl score'].gt(105) & df['toefl score'].lt(115)]df[(df['toefl score'].isin(range(106, 115)))]df[(df['toefl score'] > 105) & (df['toefl score'] < 115)]

2.4 DataFrame的增删

2.4.1 删除(.drop()与del())

  1. .drop()和Series一样,DataFrame可以用.drop()来删除行和列,DataFrame中有参数axis,默认值为0,即删除行数据,设置为axis=1时可以删除列数据,再次强调,.drop() .append()等功能并不是在原表上进行操作,而是生成副本,在副本上进行操作后返回副本。inplace=True参数可以时操作直接在原表上进行。

students = [{'Name': 'Alice','Class': 'Physics','Score': 85},{'First Name': 'Jack','Class': 'Chemistry','Score': 82},{'Name': 'Helen','Class': 'Biology','Score': 90},{'Name': 'Helen','Class': 'Biology','Score': 90}]
df = pd.DataFrame(students, index=['school1', 'school2', 'school1',0])
df.drop('school2',inplace=True)
print(df)
df.drop(['Name','Class'],axis=1,inplace=True)
print(df)
--Outoputs:

  2. del() del可以用来删除列,用法是del(df[‘列名’])直接作用在原表上,如果非要用del删除行,考虑运用.T,如下所示(并不建议)

df_copy=df.copy()
del (df_copy['Name'])
print(df_copy)df_copy=df.copy()
df_copy=df_copy.T
del(df_copy['school1'])
df_copy=df_copy.T
print(df_copy)--Outputs:

2.4.2 增添(.append()与直接命名)

  1. .append(),其中参数可以是Series, DataFrame或者是a list of dict,与Series一致,注意inplace参数即可,不再赘述。

在这里插入代码片

  2. 直接命名法,可以直接命名一个不存在的列,pandas会将它添加在当前DataFrame最后一列,默认值为None

df['age']=None--Outputs:

三、缺失值与数据处理

3.1 MAR与MCAR

  如果有其他变量可用于预测缺失的变量,则此类缺失数据称为随机缺失(Missing at Random, MAR),如果与其他变量没有关系,那么我们将此数据称为完全随机缺失(Missing Completely at Random, MCAR)这只是丢失数据的两个例子,还有更多的例子。例如,数据可能会丢失,因为它不是由负责收集数据的过程(如研究人员)收集的,或者是因为如果它被收集就没有意义。

3.2 处理缺失值(boolean mask, .fillna() 与.dropna())

   1. 用Boolean mask来查看判断值

import pandas as pddf = pd.read_csv('datasets/class_grades.csv')
mask=df.isnull()
mask.head(10)

   2. 用.dropna()来删除空值

df.dropna(inplace=True)
df.head()

  3. 用确定值填充
  可以用.fillna()来填充,可选参数inplace,也可以选择填充模式,包括用前值填充method=‘ffill’ 或者用后值填充 method=‘bfill’. (front fill / back fill):

df.fillna(0, inplace=True)#用0填充
df.head(10)df = pd.read_csv('datasets/class_grades.csv')
df = df.fillna(method='bfill') #用后值填充
df.head(5)df = pd.read_csv('datasets/class_grades.csv')
df = df.fillna(method='ffill') #用前值填充
df.head(5)



3.3 数据修改(replace()与regex)

  DataFrame可以利用.replace()功能来实现对函数值的修改

df = pd.DataFrame({'A': [1, 1, 2, 3, 4],'B': [3, 6, 3, 8, 9],'C': ['a', 'b', 'c', 'd', 'e']})
df.replace(1, 100)
df.replace([1, 3], [100, 300])


  replace函数中也可以用正则表达式,需要用到to_replace, value 和regex参数:

df = pd.read_csv("datasets/log.csv")
df.head(5)
df.replace(to_replace=".*.html$", value="webpage", regex=True,inplace=True)
df.head(5)

3.4 升/降序排列 sort_values()

  使用函数sort_values(ascending=True,by=)对Series或者DataFrame进行降序排序。其中ascending代表升序参数,默认值为True,如果需要降序,将其改为False。
  在DataFrame中需要给定参数by,表示按那一列进行排序。

df.sort_values(ascending=False,by='Rank')


这个例子在日后会更详细说明。


总结与下节预告

  本周系统地重温了Series和DataFrame的结构和用法,重新梳理了数据处理过程中常用的属性与功能,下节会举几个实际的例子用来进一步加强理解

【DS with Python】 Pandas中Series DataFrame的结构、创建、查询、修改语法与实例相关推荐

  1. dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)...

    一.为什么学习pandas numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢? numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类 ...

  2. pandas中series一维数组的创建、索引的更改+索引切片和布尔索引+dataframe二维数组的创建、基本属性、索引方法(传统方法和lociloc)、nan操作、排序+案例

    目录 一.为什么要学习pandas? 二.pandas的常用数据类型 1.series--一维的且带标签的数组 (1)创建一维数组 (2)通过列表形式创建的series带标签数组可以改变索引,传入索引 ...

  3. python pandas dataframe 排序,如何按两列或更多列对python pandas中的dataFrame进行排序?...

    Suppose I have a dataframe with columns a, b and c, I want to sort the dataframe by column b in asce ...

  4. python pandas中关于DataFrame行,列显示不完全(省略)的解决办法

    引用 添加代码即可: #显示所有列 pd.set_option('display.max_columns', None) #显示所有行 pd.set_option('display.max_rows' ...

  5. python科学计算笔记(三)pandas中Series和DataFrame练习

    from pandas import Series, DataFrame# Series接收list或dict作为一维数据 #两个属性:values, index #① s1 = Series([4, ...

  6. python怎么选取不连续的列_用pandas中的DataFrame时选取行或列的方法

    如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...

  7. python中的iloc函数_详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据

    pandas的DataFrame对象,本质上是二维矩阵,跟常规二维矩阵的差别在于前者额外指定了每一行和每一列的名称.这样内部数据抽取既可以用"行列名称(对应.loc[]方法)",也 ...

  8. Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换

    Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片.相互转换 目录 numpy中的array格式数据切片与pandas中的dataframe ...

  9. Pandas 中 Series 和 DataFrame 知识点

    Series Series对象的创建 # pandas 学习 import pandas as pd from pandas import Series,DataFrame import numpy ...

最新文章

  1. /dev/rdsk 与 /dev/dsk区别
  2. 哪些是能安装mysql的文件_安装mysql详细步骤有哪些?
  3. android 购物车小美的店,[转载]【小美教程】买菜累啊有木有?购物车用的购物袋教程来啦.........
  4. 1.13 Predicate操作Collection集合
  5. 系统通知,居然用拉取
  6. Chrome DevTools — Network
  7. excel 时间戳_我没有Excel基础,可以学Power BI吗
  8. 小心Lombok用法中的坑
  9. java volatile 原子性_Java中volatile不能保证原子性的证明
  10. visio2013找到密钥以后但是未激活状态
  11. Unity3D制作塔防类游戏
  12. 【Python】1.基本语法元素
  13. 重磅 | 死磕 Elasticsearch 方法论认知清单(2021年国庆更新版)
  14. excel 画散点图 怎么设置图片的分辨率_有哪些相见恨晚的Excel图表制作方法?
  15. 小学二年级计算机课游戏,小学体育课游戏_求10种左右适合小学一二年级学生体育课上做的游戏...
  16. 处理txt文件下载下来以后,排版格式不对的问题
  17. Microsoft Edge浏览器不兼容解决办法
  18. OpenGL图形旋转
  19. 全球及中国载药微球经肝动脉化学栓塞术(DEB-TACE)在肿瘤学中的应用行业研究及十四五规划分析报告
  20. MYSQL数据库DML常见的命令

热门文章

  1. html文件怎么在桌面建立,怎么创建html网页 怎样在桌面上建立HTML网页文件?
  2. Mac自带的录屏功能
  3. 解决element的Table表格组件的高度问题( height只能是数字或者字符串 ),实现height: calc(100vh - 260px) 的效果
  4. python插入排序实现及详解
  5. JAVA开发中常见问题
  6. android 360加固保
  7. 入门学习MNIST手写数字识别
  8. netty-对象池实现Recycler用法测试
  9. 云班课计算机题答案,云班课答案获取
  10. 福昕 关闭互联PDF