首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

图解pandas的assign函数

如果列名是不可调用的(例如:Series、标量scalar或者数组array),则直接进行分配 最后,这个函数的返回值是一个新的DataFrame数据框,包含所有现有列和新生成的列 导入库 import...df的col1属性,生成col3 df.assign(col3=lambda x: x.col1 / 2 + 20) .dataframe tbody tr th:only-of-type...col2 0 12 xiaoming 1 16 peter 2 18 mike 操作字符串类型的数据: df.assign(col3=df["col2"].str.upper()) 方式2:调用Series...col2 0 12 xiaoming 1 16 peter 2 18 mike 在Python3.6+中,我们可以在同一个赋值中创建多个列,并且其中一个列还可以依赖于同一个赋值中定义的另一列,也就是中间生成的新列可以直接使用...:BMI 总结 通过上面的例子,我们发现: 使用assign函数生成的DataFrame是不会改变原来的数据,这个DataFrame是新的 assign函数能够同时操作多个列名,并且中间生成的列名能够直接使用

43820
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    搞懂这些SQL优化技巧,面试横着走

    使用表的别名 当在SQL语句中连接多个表时,请使用表的别名并把别名前缀于每个列名上。这样就可以减少解析的时间并减少哪些友列名歧义引起的语法错误。 5....,col2,...;” 如果显式包括一个包含相同的列的 ORDER BY子句,MySQL 可以毫不减速地对它进行优化,尽管仍然进行排序。...高效: SELECT COL1, COL2, COL3 FROM TABLE WHERE COL1 = 10 UNION ALL SELECT COL1, COL2, COL3 FROM TABLE...WHERE COL3= 'TEST'; 低效: SELECT COL1, COL2, COL3 FROM TABLE WHERE COL1 = 10 UNION SELECT COL1, COL2..., COL3 FROM TABLE WHERE COL3= 'TEST'; 5.拆分复杂SQL为多个小SQL,避免大事务 简单的SQL容易使用到MySQL的QUERY CACHE; 减少锁表时间特别是使用

    91820

    SQL优化最干货总结 – MySQL(2020最新版)

    使用表的别名 当在SQL语句中连接多个表时,请使用表的别名并把别名前缀于每个列名上。这样就可以减少解析的时间并减少哪些友列名歧义引起的语法错误。 5....优化group by语句 默认情况下,MySQL 会对GROUP BY分组的所有值进行排序,如 “GROUP BY col1,col2,….;” 查询的方法如同在查询中指定 “ORDER BY col1...高效: SELECT COL1, COL2, COL3 FROM TABLE WHERE COL1 = 10 UNION ALL SELECT COL1, COL2, COL3 FROM TABLE...WHERE COL3= 'TEST'; 低效: SELECT COL1, COL2, COL3 FROM TABLE WHERE COL1 = 10 UNION SELECT COL1, COL2..., COL3 FROM TABLE WHERE COL3= 'TEST'; 5.拆分复杂SQL为多个小SQL,避免大事务 简单的SQL容易使用到MySQL的QUERY CACHE; 减少锁表时间特别是使用

    75110

    mysql在ubuntu中的操作笔记(详)

    - select col1,col2,col3….from table     - select * from table   - 10.2 查询表的部分列     - select col1...,col2,col3…from table   - 10.3 给查询出来的数据列设置别名     - select col1 as “别名1”,col2 as ‘别名2’…from table     ...)     - 特点:列值同数,列值同序   - 11.2 为指定列插入值     - 语法:insert into table(col1,col2,col3) values(v1,v2,v3)     ...- 特点:指定顺序,列值对应   - 11.3 一次性插入多条记录     - 语法:insert into table(co1,col2,col3…)values         (v1,v2,v3)...- 语法:select * from (select col1,col2,col3 from table) as t   - 26.1 子查询分类     - 独立子查询:       - 子查询可以独立运行

    1.1K40

    Ubuntu中MySQL数据库操作详解

    - select col1,col2,col3….from table     - select * from table   - 10.2 查询表的部分列     - select col1...,col2,col3…from table   - 10.3 给查询出来的数据列设置别名     - select col1 as “别名1”,col2 as ‘别名2’…from table     ...)     - 特点:列值同数,列值同序   - 11.2 为指定列插入值     - 语法:insert into table(col1,col2,col3) values(v1,v2,v3)     ...- 特点:指定顺序,列值对应   - 11.3 一次性插入多条记录     - 语法:insert into table(co1,col2,col3…)values         (v1,v2,v3)...- 语法:select * from (select col1,col2,col3 from table) as t   - 26.1 子查询分类     - 独立子查询:       - 子查询可以独立运行

    4.4K30

    什么是最左前缀匹配?为什么要遵守?

    ★组合索引即由多个字段组成的联合索引,比如 idx_col1_col2_col3 (col1,col2,col3)。...假设我们创建了一个组合索引 (col1, col2, col3),如果查询条件是针对 col1、(col1, col2) 或者 (col1, col2, col3),那么 MySQL 就能利用该复合索引进行最左前缀匹配...然而,如果查询条件只涉及到 col2、只涉及到 col3 或者只涉及到 col2 和 col3,也就是没有包含 col1,那么通常情况下(不考虑索引跳跃扫描等其他优化),就无法利用该索引进行最左前缀匹配...此外,需要大家注意的是,许多人可能会误以为创建一个组合索引 (col1, col2, col3) 时,数据库会创建三个索引 (col1)、(col1, col2) 和 (col1, col2, col3...实际上,数据库只会创建一棵 B+树,只不过在这颗树中,首先按照 col1 进行排序,然后在 col1 相同时再按照 col2 排序,col2 相同再按照 col3 排序。

    68710

    两个神奇的R包介绍,外加实用小抄

    (正常来说列名不需要加‘’,大概是因为示例中这个列名是纯数字的缘故。) 其中,需合并的列名也可以列在最后,这样,key=和value=可以省略。...举三个栗子 arrange(data,col1) arrange(data,col1,col2)#在按col1排序的基础上,按col2排序 arrange(data,col1,desc(col2)...) 2.fliter 按行筛选 (筛选符合要求的行) 举三个栗子 filter(data,col3>1) filter(data,col3>1|col1=="gene1") #“|”表示or,或者。...Sampleid select(frame3,contains("n")) #列名包含n的列 select(frame3,starts_with("a")) #以a开头的列 5.mutate 根据原有的列生成新的列...这是根据相同的列名进行合并,当在两个表格中列名不一样时,需要在括号内加 by=c("col1"="col2") 其中col1和2分别是在两个表格中的需合并的列名 semi_join,anti_join

    2.5K40

    总结了67个pandas函数,完美解决数据处理,拿来即用!

    ⼊数据 pd.read_html(url) # 解析URL、字符串或者HTML⽂件,抽取其中的tables表格 导出数据 这里为大家总结5个常见用法。...df[col] # 根据列名,并以Series的形式返回列 df[[col1,col2]] # 以DataFrame形式返回多列 s.iloc[0] # 按位置选取数据 s.loc['index_one...df.columns= ['a','b','c'] # 重命名列名(需要将所有列名列出,否则会报错) pd.isnull() # 检查DataFrame对象中的空值,并返回⼀个Boolean数组 pd.notnull...() # 检查DataFrame对象中的⾮空值,并返回⼀个Boolean数组 df.dropna() # 删除所有包含空值的⾏ df.dropna(axis=1) # 删除所有包含空值的列 df.dropna...(index=col1,values=[col2,col3],aggfunc={col2:max,col3:[ma,min]}) # 创建⼀个按列col1进⾏分组,计算col2的最⼤值和col3的最⼤值

    3.5K30

    excel导入mysql代码_EXCEL导入Mysql方法「建议收藏」

    ,把选择“填写excel友好值”,点击确定; ·在“从文件导入”中选择要导入的CSV文件路径,点击“导入”即可导入数据到表上; 3.一个比较笨的手工方法,就是先利用excel生成sql语句,然后再到mysql...中运行,这种方法适用于excel表格导入到各类sql数据库: ·假设你的表格有A、B、C三列数据,希望导入到你的数据库中表格tablename,对应的字段分别是col1、col2、col3 ·在你的表格中增加一列...,利用excel的公式自动生成sql语句,具体方法如下: 1)增加一列(假设是D列) 2)在第一行的D列,就是D1中输入公式: =CONCATENATE(“insert into tablename (...col1,col2,col3) values (“,A1,”,”,B1,”,”,C1,”);”) 3)此时D1已经生成了如下的sql语句: insert into table (col1,col2,col3...) values (‘a’,’11’,’33’); 4)将D1的公式复制到所有行的D列(就是用鼠标点住D1单元格的右下角一直拖拽下去啦) 5)此时D列已经生成了所有的sql语句 6)把D列复制到一个纯文本文件中

    5.4K30

    【Mark一下】46个常用 Pandas 方法速查表

    数据框与R中的DataFrame格式类似,都是一个二维数组。Series则是一个一维数组,类似于列表。数据框是Pandas中最常用的数据组织方式和对象。...:2)中间的记录,不包含2iloc[m:n]In: print(data2.iloc[0:2]) Out: col1 col2 col3 0 2 a True 1...2 1 1选取行索引在[0:2)列索引在[0:1)中间的记录,行索引不包含2,列索引不包含1loc[m:n,[ '列名1', '列名2',…]]选择行索引在m到n间且列名为列名1、列名2的记录...a选取行索引在[0:2)之间,列名为'col1'和'col2'的记录,行索引不包含2 提示 如果选择特定索引的数据,直接写索引值即可。...例如data2.loc[2,['col1','col2']]为选择第三行且列名为'col1'和'col2'的记录。

    4.9K20

    MySQL - SQL优化干货总结(吐血版)

    使用表的别名 当在SQL语句中连接多个表时,请使用表的别名并把别名前缀于每个列名上。这样就可以减少解析的时间并减少哪些友列名歧义引起的语法错误。 5....优化group by语句 默认情况下,MySQL 会对GROUP BY分组的所有值进行排序,如 “GROUP BY col1,col2,....;” 查询的方法如同在查询中指定 “ORDER BY col1...高效: SELECT COL1, COL2, COL3 FROM TABLE WHERE COL1 = 10 UNION ALL SELECT COL1, COL2, COL3 FROM TABLE...WHERE COL3= 'TEST'; 低效: SELECT COL1, COL2, COL3 FROM TABLE WHERE COL1 = 10 UNION SELECT COL1, COL2..., COL3 FROM TABLE WHERE COL3= 'TEST'; 5.拆分复杂SQL为多个小SQL,避免大事务 简单的SQL容易使用到MySQL的QUERY CACHE; 减少锁表时间特别是使用

    1.3K40

    Pandas速查手册中文版

    数据选取 df[col]:根据列名,并以Series的形式返回列 df[[col1, col2]]:以DataFrame形式返回多列 s.iloc[0]:按位置选取数据 s.loc['index_one...():检查DataFrame对象中的空值,并返回一个Boolean数组 pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组 df.dropna():删除所有包含空值的行...(col2, ascending=False):按照列col1降序排列数据 df.sort_values([col1,col2], ascending=[True,False]):先按列col1升序排列...(col1)[col2]:返回按列col1进行分组后,列col2的均值 df.pivot_table(index=col1, values=[col2,col3], aggfunc=max):创建一个按列...col1进行分组,并计算col2和col3的最大值的数据透视表 df.groupby(col1).agg(np.mean):返回按列col1分组的所有列的均值 data.apply(np.mean):对

    12.3K92
    领券