Series和DataFrame是现在常用的两种数据类型。 1. Series Series和一维数组很像,只是它的每一个值都有一个索引,输出显示时索引在左,值在右。...=[12, 13, 14,15]) print(s) """ 输出: 12 a 13 b 14 c 15 d dtype: object """ 4)从字典创建一个序列: 当所创建的索引中...,未给赋值时,也即缺少元素是,用NAN填充 data = {'a':0,'b':1,'c':2.} s= pd.Series(data, index=['b','a','c','d']) print(...DataFrame DataFrame是一个2维标签的数据结构,它的列可以存在不同的类型。你可以把它简单的想成Excel表格或SQL Table,或者是包含字典类型的Series。...],columns=['a','b1']) print('df2:\n',df2) """ 输出: df1: a b rank1 1 2 rank2 2 10 df2:
考虑一个二维矩阵,其一维为“ B ”和“ C ”(列名),另一维为“ a”,“ b ”和“ c ”(行索引)。 我们选择一个ID,一个维度和一个包含值的列/列。...包含值的列将转换为两列:一列用于变量(值列的名称),另一列用于值(变量中包含的数字)。 ? 结果是ID列的值(a,b,c)和值列(B,C)及其对应值的每种组合,以列表格式组织。...作为另一个示例,当级别设置为0(第一个索引级别)时,其中的值将成为列,而随后的索引级别(第二个索引级别)将成为转换后的DataFrame的索引。 ?...how参数是一个字符串,它表示四种连接 方法之一, 可以合并两个DataFrame: ' left ':包括df1的所有元素, 仅当其键为df1的键时才 包含df2的元素 。...包括df2的所有元素, 仅当其键是df2的键时才 包含df1的元素 。 “outer”:包括来自DataFrames所有元素,即使密钥不存在于其他的-缺少的元素被标记为NaN的。
pandas中的 concat() 方法用于将两个或多个 DataFrame 对象沿着行 axis=0 或者列 axis=1 的方向拼接在一起,生成一个新的DataFrame对象。...5, 6], 'D': [7, 8]}, index=[2, 3]) # 横向合并,取交集行索引是2的部分 res = pd.concat([df1, df2], axis=1, join='inner...NaN 2 2.0 4.0 5.0 7.0 3 NaN NaN 6.0 8.0 可以看到,最终结果保留了两个 DataFrame 行索引的并集,缺失值用 NaN 填充。...# keys 的长度必须和df中的列名的长度一样 res = pd.concat([df1, df2], axis=1, keys=['X', 'Y']) print(res) 输出: X...Y A B 0 1 3 1 2 4 当使用 pd.concat() 合并多个 DataFrame 时,如果不指定 keys 参数,合并后的 DataFrame 的索引默认就是按顺序的范围索引
() df1.pow(df2) 计算df1的df2次方,df1^df2 rpow() df1.rpow(df2) 计算df2的df1次方,df2^df1 在Pandas中,这些函数的用法和运算规则都相同...在进行除法运算时,如果被除数是0,得到的结果可能是inf(表示无穷大,与Python的浮点数精度有关),也可能是NaN(空值)。在后面的所有运算中都一样。...当且仅当两个DataFrame中都有值时,才会有运算结果,其他位置的结果都为空值,运算原理如下图。 ? 在运算结果中有很多空值,如果需要进行空值填充,可以使用fillna()函数。 ?...与DataFrame不同的是,使用fill_value参数先填充数据再进行运算时,结果中不会有空值。因为Series是一维数据,对Series填充时,不存在两个Series都是填充值的行索引。...其中Series可以按行运算,也可以按列运算,取决于axis参数。 ? fillna()函数的用法也一样,对运算结果进行空值填充。
当然,如果df1的缺失值位置在df2中也是NaN,那也是不会填充的。...这个例子就是,我们如果update了缺失值NaN,则就不会在原df1中把对应元素改成NaN了,这个缺失值是不会被填充的。...使用了how='outer',那么如果行中带有缺失值也会被返回。 左连接: pd.merge(left, right, how='left', on=['key1', 'key2']) ?...pd.merge(df1['Name'],df2['Name']) ? (b) 将所有不符合(a)中条件的行筛选出来,合并为一张新表,列名与原表一致。...说明“分数”列是存在缺失值的,所以我们需要将“分数”列的缺失值补上。
这是因为df2 = df1并不是生成一个df1的复制品并把它赋值给df2,而是设定一个指向df1的指针。所以只要是针对df2的改变,也会相应地作用在df1上。...dropna = False: 把缺失值也保留在这次统计中。 sort = False: 将数据按照值来排序而不是按照出现次数排序。...缺失值的数量 当构建模型时,我们可能会去除包含过多缺失值或是全部是缺失值的行。这时可以使用.isnull()和.sum()来计算指定列缺失值的数量。...依据指定ID来选取行 在SQL中我们可以使用 SELECT * FROM … WHERE ID in (‘A001’,‘C022’, …)来获取含有指定ID的记录。...当导出表格时,你可以加上float_format=‘%.0f’以便将所有的浮点数近似成整数。当你想把所有列的输出值都变成整数格式时,就可以使用这个技巧,这样一来你就会告别所有数值后带“.0”的烦恼。
这是因为df2 = df1并不是生成一个df1的复制品并把它赋值给df2,而是设定一个指向df1的指针。所以只要是针对df2的改变,也会相应地作用在df1上。...为了解决这个问题,你既可以这样做: df2 = df1.copy() 也可以这样做: from copy import deepcopy df2 = deepcopy(df1) 4. map 这个炫酷的命令让你的数据转换变得轻松...缺失值的数量 当构建模型时,我们可能会去除包含过多缺失值或是全部是缺失值的行。这时可以使用.isnull()和.sum()来计算指定列缺失值的数量。...依据指定ID来选取行 在SQL中我们可以使用 SELECT * FROM … WHERE ID in (‘A001’,‘C022’, …)来获取含有指定ID的记录。...当导出表格时,你可以加上float_format=‘%.0f’以便将所有的浮点数近似成整数。当你想把所有列的输出值都变成整数格式时,就可以使用这个技巧,这样一来你就会告别所有数值后带“.0”的烦恼。
当how参数的默认值设置为inner时,将从左DataFrame和右DataFrame的交集生成一个新的DataFrame。...解决方法,就是在使用merge()时,将参数 how的值设置为left: df_left_merge = pd.merge(df1, df2, how='left') print(df_left_merge...http://example.com/img/id005.png 由于df2 中的每一行在df1中都有一个值,所以在本例中,right联接类似于inner联接。...Illis killis4@example.com right_only 请注意,在 df_outer中,“id006”和“id007”只存在于右DataFrame中(在本例中是df1)。...如果设置为 True ,它将忽略原始值并按顺序重新创建索引值 keys:用于设置多级索引,可以将它看作附加在DataFrame左外侧的索引的另一个层级的索引,它可以帮助我们在值不唯一时区分索引 用与 df2
(或者,你可以在linux中使用'head'命令来检查任何文本文件中的前5行,例如:head -c 5 data.txt) 然后,你可以使用df.columns.tolist()来提取列表中的所有列,然后添加...df1.head() 你会发现df1已经改变了。这是因为df2 = df1没有复制df1的值并将其分配给df2,而是设置指向df1的指针。...df2 = deepcopy(df1) 4. Map 这是一个可以进行简单数据转换的命令。首先定义一个字典,其中'keys'是旧值,'values'是新值。 1....缺失值的数量 构建模型时,你可能希望排除具有很多缺失值或全是缺失值的行。你可以使用.isnull()和.sum()来计算指定列中缺失值的数量。 1....选择具有特定ID的行 在SQL中,我们可以使用SELECT * FROM ... WHERE ID('A001','C022',...)来获取具有特定ID的记录。
(或者,你可以在linux中使用 head 命令来检查任何文本文件中的前5行,例如:head -c 5 data.txt) 然后,你可以使用df.columns.tolist()来提取列表中的所有列,然后添加...这是因为df2 = df1没有复制df1的值并将其分配给df2,而是设置指向df1的指针。...因此,df2的任何变化都会导致df1发生变化 要解决这个问题,你可以: df2 = df1.copy() # 或者 from copy import deepcopy df2 = deepcopy(df1...缺失值的数量 构建模型时,你可能希望排除具有很多缺失值或全是缺失值的行。你可以使用.isnull()和.sum()来计算指定列中缺失值的数量。...选择具有特定ID的行 在SQL中,我们可以使用SELECT * FROM ... WHERE ID( A001 , C022 ,...)来获取具有特定ID的记录。
x1 中的 index 采用的是默认值,x2 中 index 进行了指定。...: 当导入的数据没有header时, 设置此参数会自动加一个前缀 通用解析参数 dtype:读取数据时修改列的类型 skip_rows: 过滤行 skip_blank_lines: 过滤掉空行 时间处理相关参数...df2.rename(columns={'Chinese': 'YuWen', 'English': 'Yingyu'}, inplace = True) (2.3)去重复的值 数据采集可能存在重复的行...数据量大的情况下,有些字段存在空值 NaN 的可能,这时就需要使用 Pandas 中的 isnull 函数进行查找。...比如,我们输入一个数据表如下: 如果我们想看下哪个地方存在空值 NaN,可以针对数据表 df 进行 df.isnull(),结果如下: 如果我想知道哪列存在空值,可以使用 df.isnull
这是因为df2 = df1并不是生成一个df1的复制品并把它赋值给df2,而是设定一个指向df1的指针。所以只要是针对df2的改变,也会相应地作用在df1上。...为了解决这个问题,你既可以这样做: df2 = df1.copy() 也可以这样做: from copy import deepcopydf2 = deepcopy(df1) 4. map 这个炫酷的命令让你的数据转换变得轻松...缺失值的数量 当构建模型时,我们可能会去除包含过多缺失值或是全部是缺失值的行。这时可以使用.isnull()和.sum()来计算指定列缺失值的数量。...依据指定ID来选取行 在SQL中我们可以使用 SELECT * FROM … WHERE ID in (‘A001’,‘C022’, …)来获取含有指定ID的记录。...当导出表格时,你可以加上float_format=‘%.0f’以便将所有的浮点数近似成整数。当你想把所有列的输出值都变成整数格式时,就可以使用这个技巧,这样一来你就会告别所有数值后带“.0”的烦恼。
取1之后每一行对应2之前每一列 bool索引 df[bool判断表达式] 如:df[(df['列索引名']>10) & (df['列索引名']<20 )] 取df中指定列索引对应的值中10-20之间的元素...NaN的行 t.dropna(axis=0, how='all', inplace=True) how的值为all时,某行全为NaN时才删除,为any时存在NaN则删除整行 inplace为True时,...'].mean()) 只将指定索引对应的列中NaN对应的值进行填充均值 合并 join() 按行合并 df1.join(df2) merge()按列合并 df1.merge(df2, on='操作的列名...', how='inner')内连接(默认) 交集 df1.merge(df2, on='a')方法会将df1中a列的值和df2中a列的值进行比较,然后将相等的值对应的整行进行合并,而且返回的结果中只包含具有可以合并的行...df1.merge(df2, on='a', how='outer') 外连接,a列包含的数据为df1和df2中a列元素的并集,每行元素分别对应,有则是原数据(一般a列的元素都有,因为操作列为a),没有则是
(inner),结果中的键是交集,即只有key值为‘a'和’b'的列,因此上述合并df1和df2的代码和下面的代码等同: pd.merge(df1,df2,how='inner') 另一个需要注意的地方是...例如df1中key值为’a'的有3行,df2种key值为‘a’的有1行,那么合并结果中key值为‘a’的有3*1=3行。...例如,只有df1中有key值为‘c’的数据,则合并结果中data2列使用NaN来补足数据。...DataFrame即df1的键值,即['a','b','c'],那么如果某些键不存在于右边的DataFrame中,对应的数据以NaN补足。...DataFrame即df2的键值,即['a','b','d'],那么如果某些键不存在于左边的DataFrame中,对应的数据以NaN补足。
# 按行连接 concatenated_df = pd.concat([df1, df2], axis=0) 5.2 指定连接轴 可以通过 axis 参数指定连接轴,0 表示按行连接,1 表示按列连接。...处理重复列名 当连接两个数据集时,可能会出现重复的列名,可以使用 suffixes 参数为重复列名添加后缀。...# 添加后缀处理重复列名 merged_df = pd.merge(df1, df2, on='common_column', suffixes=('_df1', '_df2')) 7....多键合并 如果连接键不止一个,可以传递一个由多个列名组成的列表。 # 多键合并 merged_df = pd.merge(df1, df2, on=['key1', 'key2']) 8....处理缺失值 合并数据时,可能会遇到某些行在一个数据集中存在而在另一个数据集中不存在的情况,导致合并后的结果中存在缺失值。可以使用 fillna 方法填充缺失值。
01 主办方 本次活动的主办方是Python和Pandas 02 小梦merge 小超呀,你认识sql中的join兄么,我们可是好兄弟(用法非常类似) 03 小超concat 哼,我和数据库中的UNION...对象中,如果位指定,则以left和right列名的交集作为连接键 left_on 以左侧的DataFrame作为连接键 right_on 以右侧的DataFrame作为连接键 left_index 以左侧的行索引作为连接键...right_index 以右侧的行索引作为连接键 sort 根据连接键对合并后的数据进行排序,默认为True suffixes 字符串值元组,用于追加到重叠列名的末尾,默认为('x','y') copy...2 2 # 外连接,取并集,缺失值用NaN填充 pd.merge(df1,df2,on='key',how='outer') key data data1 0 a 0 0.0 1 b 1 1.0...,等价于merge 3.merge合并的范围广泛,concat合并的范围小,仅支持索引连接 当然了作为评委的你们觉得如何呢
左连接 (left join):合并之后显示 df1 的所有行 右连接 (right join):合并之后显示 df2 的所有行 外连接 (outer join):合并 df1 和 df2 共有的所有行...df1 中有 IR Option 而 df2 中没有,因此 Number_y 栏下的值为 NaN df2 中有 IR Swap 而 df1 中没有,因此 Number_x 栏下的值为 NaN ----...当 df1 和 df2 有两个相同的列 (Asset 和 Instrument) 时,单单只对一列 (Asset) 做合并产出的 DataFrame 会有另一列 (Instrument) 重复的名称。...先把 df1 和 df2 列标签补齐 再把 df1 和 df2 纵向连起来 pd.concat( [df1, df2] ) 得到的 DataFrame 的 index = [0,1,2,0,1],有重复值...data」中的值 函数 melt 可以生成一张含有多个 id 的长表,然后可在 id 上筛选出我们想要的信息,比如 melted_data[ lambda x: (x.Date=='25/02/2019
x1中的index采用的是默认值,x2中index进行了指定。...去重复的值 数据采集可能存在重复的行,这时只要使用drop_duplicates()就会自动把重复的行去掉。...数据量大的情况下,有些字段存在空值NaN的可能,这时就需要使用Pandas中的isnull函数进行查找。...如果我们想看下哪个地方存在空值NaN,可以针对数据表df进行df.isnull(),结果如下: ? 如果我想知道哪列存在空值,可以使用df.isnull().any(),结果如下: ?...()) 在这个例子里,输入的参数是sql,返回的结果是sqldf对sql的运行结果,当然sqldf中也输入了globals全局参数,因为在sql中有对全局参数df1的使用。
分析前操作 我们使用read读取数据集时,可以先通过info 方法了解不同字段的条目数量,数据类型,是否缺失及内存占用情况 案例:找到小成本高口碑电影 思路:从最大的N个值中选取最小值 movie2....中的重复行。...',join = 'outer') pd.concat([df1,df2,df3],ignore_index=True) 也可以使用concat函数添加列,与添加行的方法类似,需要多传一个axis参数...,也可以通过pd.merge命令组合数据,merge更灵活,如果想依据行索引来合并DataFrame可以考虑使用join函数 how = ’left‘ 对应SQL中的 left outer 保留左侧表中的所有...) merge: DataFrame方法 只能水平连接两个DataFrame对象 对齐是靠被调用的DataFrame的列或行索引和另一个DataFrame的列或行索引 默认是内连接(也可以设为左连接、
领取专属 10元无门槛券
手把手带您无忧上云