精华内容
下载资源
问答
  • 在使用pandas框架的DataFrame的过程中,如果需要处理一些字符串的特性,例如判断某列是否包含一些关键字,某列的字符长度是否小于3等等这种需求,如果掌握str列内置的方法,处理起来会方便很多。下面我们来详细了解...

    在使用pandas框架的DataFrame的过程中,如果需要处理一些字符串的特性,例如判断某列是否包含一些关键字,某列的字符长度是否小于3等等这种需求,如果掌握str列内置的方法,处理起来会方便很多。

    下面我们来详细了解一下,Series类的str自带的方法有哪些。

    1、cat() 拼接字符串

    例子:

    >>> Series([‘a‘, ‘b‘, ‘c‘]).str.cat([‘A‘, ‘B‘, ‘C‘], sep=‘,‘)

    0 a,A

    1 b,B

    2 c,C

    dtype: object

    >>> Series([‘a‘, ‘b‘, ‘c‘]).str.cat(sep=‘,‘)

    ‘a,b,c‘

    >>> Series([‘a‘, ‘b‘]).str.cat([[‘x‘, ‘y‘], [‘1‘, ‘2‘]], sep=‘,‘)

    0    a,x,1

    1    b,y,2

    dtype: object

    2、split() 切分字符串

    >>> import numpy,pandas;

    >>> s = pandas.Series([‘a_b_c‘, ‘c_d_e‘, numpy.nan, ‘f_g_h‘])

    >>> s.str.split(‘_‘)

    0    [a, b, c]

    1    [c, d, e]

    2          NaN

    3    [f, g, h]

    dtype: object

    >>> s.str.split(‘_‘, -1)

    0    [a, b, c]

    1    [c, d, e]

    2          NaN

    3    [f, g, h]

    dtype: object

    >>> s.str.split(‘_‘, 0)

    0    [a, b, c]

    1    [c, d, e]

    2          NaN

    3    [f, g, h]

    dtype: object

    >>> s.str.split(‘_‘, 1)

    0    [a, b_c]

    1    [c, d_e]

    2         NaN

    3    [f, g_h]

    dtype: object

    >>> s.str.split(‘_‘, 2)

    0    [a, b, c]

    1    [c, d, e]

    2          NaN

    3    [f, g, h]

    dtype: object

    >>> s.str.split(‘_‘, 3)

    0    [a, b, c]

    1    [c, d, e]

    2          NaN

    3    [f, g, h]

    dtype: object

    3、get()获取指定位置的字符串

    >>> s.str.get(0)

    0      a

    1      c

    2    NaN

    3      f

    dtype: object

    >>> s.str.get(1)

    0      _

    1      _

    2    NaN

    3      _

    dtype: object

    >>> s.str.get(2)

    0      b

    1      d

    2    NaN

    3      g

    dtype: object

    4、join() 对每个字符都用给点的字符串拼接起来,不常用

    >>> s.str.join("!")

    0    a!_!b!_!c

    1    c!_!d!_!e

    2          NaN

    3    f!_!g!_!h

    dtype: object

    >>> s.str.join("?")

    0    a?_?b?_?c

    1    c?_?d?_?e

    2          NaN

    3    f?_?g?_?h

    dtype: object

    >>> s.str.join(".")

    0    a._.b._.c

    1    c._.d._.e

    2          NaN

    3    f._.g._.h

    dtype: object

    5、contains()是否包含表达式

    >>> s.str.contains(‘d‘)

    0    False

    1     True

    2      NaN

    3    False

    dtype: object

    6、replace()替换

    >>> s.str.replace("_", ".")

    0    a.b.c

    1    c.d.e

    2      NaN

    3    f.g.h

    dtype: object

    7、repeat()重复

    >>> s.str.repeat(3)

    0    a_b_ca_b_ca_b_c

    1    c_d_ec_d_ec_d_e

    2                NaN

    3    f_g_hf_g_hf_g_h

    dtype: object

    8、pad()左右补齐

    >>> s.str.pad(10, fillchar="?")

    0    ?????a_b_c

    1    ?????c_d_e

    2           NaN

    3    ?????f_g_h

    dtype: object

    >>>

    >>> s.str.pad(10, side="right", fillchar="?")

    0    a_b_c?????

    1    c_d_e?????

    2           NaN

    3    f_g_h?????

    dtype: object

    9、center() 中间补齐,看例子

    >>> s.str.center(10, fillchar="?")

    0    ??a_b_c???

    1    ??c_d_e???

    2           NaN

    3    ??f_g_h???

    dtype: object

    10、ljust() 右边补齐,看例子

    >>> s.str.ljust(10, fillchar="?")

    0    a_b_c?????

    1    c_d_e?????

    2           NaN

    3    f_g_h?????

    dtype: object

    11、rjust() 左边补齐,看例子

    >>> s.str.rjust(10, fillchar="?")

    0    ?????a_b_c

    1    ?????c_d_e

    2           NaN

    3    ?????f_g_h

    dtype: object

    12、zfill()左边补0

    >>> s.str.zfill(10)

    0    00000a_b_c

    1    00000c_d_e

    2           NaN

    3    00000f_g_h

    dtype: object

    13、wrap()在指定的位置加回车符号

    >>> s.str.wrap(3)

    0    a_b\n_c

    1    c_d\n_e

    2        NaN

    3    f_g\n_h

    dtype: object

    14、slice() 按给点的开始结束位置切割字符串

    >>> s.str.slice(1,3)

    0     _b

    1     _d

    2    NaN

    3     _g

    dtype: object

    15、slice_replace() 使用给定的字符串,替换指定的位置的字符

    >>> s.str.slice_replace(1, 3, "?")

    0    a?_c

    1    c?_e

    2     NaN

    3    f?_h

    dtype: object

    >>> s.str.slice_replace(1, 3, "??")

    0    a??_c

    1    c??_e

    2      NaN

    3    f??_h

    dtype: object

    16、count()计算给定单词出现的次数

    >>> s.str.count("a")

    0     1

    1     0

    2   NaN

    3     0

    dtype: float64

    17、startswith()判断是否以给定的字符串开头

    >>> s.str.startswith("a");

    0     True

    1    False

    2      NaN

    3    False

    dtype: object

    18、endswith() 判断是否以给定的字符串结束

    >>> s.str.endswith("e");

    0    False

    1     True

    2      NaN

    3    False

    dtype: object

    19、findall() 查找所有符合正则表达式的字符,以数组形式返回

    >>> s.str.findall("[a-z]");

    0    [a, b, c]

    1    [c, d, e]

    2          NaN

    3    [f, g, h]

    dtype: object

    20、match()检测是否全部匹配给点的字符串或者表达式

    >>> s

    0    a_b_c

    1    c_d_e

    2      NaN

    3    f_g_h

    dtype: object

    >>> s.str.match("[d-z]");

    0    False

    1    False

    2      NaN

    3     True

    dtype: object

    21、extract()抽取匹配的字符串出来,注意要加上括号,把你需要抽取的东西标注上

    >>> s.str.extract("([d-z])");

    0    NaN

    1      d

    2    NaN

    3      f

    dtype: object

    22、len()计算字符串的长度

    >>> s.str.len()

    0     5

    1     5

    2   NaN

    3     5

    dtype: float64

    23、strip() 去除前后的空白字符

    >>> idx = pandas.Series([‘ jack‘, ‘jill ‘, ‘ jesse ‘, ‘frank‘])

    >>> idx.str.strip()

    0     jack

    1     jill

    2    jesse

    3    frank

    dtype: object

    24、rstrip() 去除后面的空白字符

    25、lstrip() 去除前面的空白字符

    26、partition()把字符串数组切割称为DataFrame,注意切割只是切割称为三部分,分隔符前,分隔符,分隔符后

    27、rpartition()从右切起

    >>> s.str.partition(‘_‘)

    0    1    2

    0    a    _  b_c

    1    c    _  d_e

    2  NaN  NaN  NaN

    3    f    _  g_h

    >>> s.str.rpartition(‘_‘)

    0    1    2

    0  a_b    _    c

    1  c_d    _    e

    2  NaN  NaN  NaN

    3  f_g    _    h

    28、lower() 全部小写

    29、upper() 全部大写

    30、find() 从左边开始,查找给定字符串的所在位置

    >>> s.str.find(‘d‘)

    0    -1

    1     2

    2   NaN

    3    -1

    dtype: float64

    31、rfind()从右边开始,查找给定字符串的所在位置

    32、index()查找给定字符串的位置,注意,如果不存在这个字符串,那么会报错!

    33、rindex()从右边开始查找,给定字符串的位置

    >>> s.str.index(‘_‘)

    0     1

    1     1

    2   NaN

    3     1

    dtype: float64

    34、capitalize()首字符大写

    >>> s.str.capitalize()

    0    A_b_c

    1    C_d_e

    2      NaN

    3    F_g_h

    dtype: object

    35、swapcase()大小写互换

    >>> s.str.swapcase()

    0    A_B_C

    1    C_D_E

    2      NaN

    3    F_G_H

    dtype: object

    36、normalize() 序列化数据,数据分析很少用到,咱们就不研究了

    37、isalnum()是否全部是数字和字母组成

    >>> s.str.isalnum()

    0    False

    1    False

    2      NaN

    3    False

    dtype: object

    38、isalpha()是否全部是字母

    >>> s.str.isalpha()

    0    False

    1    False

    2      NaN

    3    False

    dtype: object

    39、isdigit()是否全部都是数字

    >>> s.str.isdigit()

    0    False

    1    False

    2      NaN

    3    False

    dtype: object

    40、isspace() 是否空格

    >>> s.str.isspace()

    0    False

    1    False

    2      NaN

    3    False

    dtype: object

    41、islower()是否全部小写

    42、isupper() 是否全部大写

    >>> s.str.islower()

    0    True

    1    True

    2     NaN

    3    True

    dtype: object

    >>> s.str.isupper()

    0    False

    1    False

    2      NaN

    3    False

    dtype: object

    43、istitle() 是否只有首字母为大写,其他字母为小写

    >>> s.str.istitle()

    0    False

    1    False

    2      NaN

    3    False

    dtype: object

    44、isnumeric()是否是数字

    45、isdecimal()是否全是数字

    原文:http://12201904.blog.51cto.com/12191904/1865302

    展开全文
  • 我的原始csv里面有14万行,2列的数据,我需要根据这些数据,判断是哪个省哪个市,所以就是类似excel的A列B列是原始数据,我根据A列B列的内容,把判断结果填写到C列D列里面 为了提高效率,我把原始csv已经赋值给了...

    我的原始csv里面有14万行,2列的数据,我需要根据这些数据,判断是哪个省哪个市,所以就是类似excel的A列B列是原始数据,我根据A列B列的内容,把判断结果填写到C列D列里面
    为了提高遍历效率,我把原始csv已经赋值给了数组,这个数组就变成二维数组了,其中包含的内容就是14万个列表,但是想扩展这些列表的长度就没办法了 怎么搜索都搜索不到
    后来想了一个办法就是新建一个同样shape的数组,把以前的数组的值一个一个填写进入,结果不行,因为我原始列表里面有一串是14位的数字,一填就成数值了,而且还会丢失后面的数字,变成141213120000.0真是尼玛坑爹
    后来我又想了一个办法
    就是将原来的数组*2,然后再替换里面的值为空
    成功了,但是好傻,而且我如果需要的新的数组是 5列 怎么办呢
    还在想办法5555
    暂时只能想到要么就是 *3 最后一列空着就空着呗

    import pandas as pd
    import numpy as np
    file_bankcode=pd.read_csv('d:/python/201906201 - 副本.csv',encoding='gbk')
    arr_bankcode_form=np.array(file_bankcode)
    row_max=arr_bankcode_form.shape[0]
    arr_bankcode_new= np.tile(arr_bankcode_form, (1,2))
    for each in range(row_max):
        arr_bankcode_new[each][2:]=''
    print(arr_bankcode_new[:5])
    

    在这里插入图片描述
    捯饬了半天,数组既不能删除元素,又不能把原表中不需要的删除不遍历,我又搜索一下
    原来可以 用 dataframe 来完成我的目的,试试
    哎一下午时间都砸折腾 小白伤不起啊

    展开全文
  • 小伙伴们好啊,今天老祝和大家说说区分大小写的查找。实际工作中,总有各种想不到的数据。比如说下面这个图中,要求根据D列的产品编号,以区分大小写的方式...在本例中,如果A列的数据等于或包含D2单元格的内容,就...

    小伙伴们好啊,今天老祝和大家说说区分大小写的查找。

    实际工作中,总有各种想不到的数据。比如说下面这个图中,要求根据D列的产品编号,以区分大小写的方式,在AB列数据源中查找对应的供货商。

    9225ffd698ace62ed20f55227185b734.png

    如果E2单元格再使用下面这个经典的套路公式,就不可以了:

    =LOOKUP(1,0/FIND(D2,A:A),B:B)

    FIND函数返回D2单元格内容在A列中的起始位置。

    在本例中,如果A列的数据等于或包含D2单元格的内容,就返回代表起始位置的数字,否则返回错误值#VALUE!。

    A4和A5单元格值差了一个字符:

    A4等于D2单元格的产品编号,

    A5包含D2单元格的产品编号。

    FIND函数对这两种情况都返回数字1,而无法实现精确匹配。

    怎么办呢?这当然难不住咱们的。

    E2单元格使用以下公式:

    =LOOKUP(1,0/EXACT(D2,A:A),B:B)

    e46cdbf327d9e73b2e477b7a791a69f6.png

    又多了一个陌生的函数,这个EXACT是做什么用的呢?

    用这个函数可以比较两个文本字符串是否完全相同,返回TRUE或是FALSE。这里的完全相同,不包括格式上的差异,这一点要注意的。

    EXACT函数眼里揉不得沙子,下面这个图,就是EXACT函数对字符的判断结果,对照一下是不难理解的。

    12aa1a97b7f47e4e488ffba67418f923.png

    用EXACT(D2,A:A),分别判断D2与A列中的型号是否完全相同,返回逻辑值TRUE或是FALSE。

    用0除这些逻辑值,TRUE变成0,FALSE变成错误值。

    LOOKUP函数使用1作为查找值,查找0所在的位置,并返回B列对应位置的供货商名称。

    好了,今天的内容就是这些吧,祝大家一天好心情~

    图文制作:祝洪忠

    展开全文
  • 小伙伴们好啊,今天老祝和大家说说区分大小写的查找。实际工作中,总有各种想不到的数据。比如说下面这个图中,要求根据D列的产品编号,以区分大小写的方式,在AB列...在本例中,如果A列的数据等于或包含D2单元格...

    小伙伴们好啊,今天老祝和大家说说区分大小写的查找。

    实际工作中,总有各种想不到的数据。比如说下面这个图中,要求根据D列的产品编号,以区分大小写的方式,在AB列数据源中查找对应的供货商。

    ab10085ee683696507cf741f272a9904.png

    如果E2单元格再使用下面这个经典的套路公式,就不可以了:

    =LOOKUP(1,0/FIND(D2,A:A),B:B)

    FIND函数返回D2单元格内容在A列中的起始位置。

    在本例中,如果A列的数据等于或包含D2单元格的内容,就返回代表起始位置的数字,否则返回错误值#VALUE!。

    A4和A5单元格值差了一个字符:

    A4等于D2单元格的产品编号,

    A5包含D2单元格的产品编号。

    FIND函数对这两种情况都返回数字1,而无法实现精确匹配。

    怎么办呢?这当然难不住咱们的。

    E2单元格使用以下公式:

    =LOOKUP(1,0/EXACT(D2,A:A),B:B)

    4a8554b6805c22f95e7055d0036ce6c1.png

    又多了一个陌生的函数,这个EXACT是做什么用的呢?

    用这个函数可以比较两个文本字符串是否完全相同,返回TRUE或是FALSE。这里的完全相同,不包括格式上的差异,这一点要注意的。

    EXACT函数眼里揉不得沙子,下面这个图,就是EXACT函数对字符的判断结果,对照一下是不难理解的。

    e89df286f791f4ca87f0f3b121f6e89b.png

    用EXACT(D2,A:A),分别判断D2与A列中的型号是否完全相同,返回逻辑值TRUE或是FALSE。

    用0除这些逻辑值,TRUE变成0,FALSE变成错误值。

    LOOKUP函数使用1作为查找值,查找0所在的位置,并返回B列对应位置的供货商名称。

    好了,今天的内容就是这些吧,祝大家一天好心情~

    图文制作:祝洪忠

    1a7bef2d74c66eccdbd271745db141a0.png

    专业的职场技能充电站

    展开全文
  • 一对一条件限定前提下,配置Aviator表达式,自定义常量数据,实现表达式规则过滤,如在A-a的条件前提下,自动匹配规则在满足A的前提下,当且仅当满足a,那么返回true,自动判断是否符合规则 ...
  • 学习Excel技术,关注微信公众号:excelperfect这是在完美Excel社群上朋友Alpha提出问题:咨询个问题哦,A列内容包含了100个客户身份证号,B列是管理这些客户员工名字(有人身份证号出现多次),共计160行。...
  • A列为数据列B列为判断列=LOOKUP(CODE(ASC(A1)),{48,65,123;"数字","英文","中文"})录入单元格B1下拉。ASCII可显示字符十进制编码从48开始是数字0从65开始是英文字母A从123开始包含中文等其他字符。 以上为纯...
  • EF本身有许多缺陷,这个可能是EF其中之一,你可以先通过只包含最简单"select * from A left Join B ON ···" 存储过程,生成最终复杂类型。实体类生成以后,你再修改存储过程,将一些逻辑判断加入...
  • 不是到是不是因为他编码后的字符串不包含空字符才会导致 我在解析出来的数据中缺少0 也就是tfqjavaeye说的 [b]问题补充:[/b] 问题已经解决了 dwangel 的说法很正确啊 一直都只盯着流 却忽略了这里 多谢各位了
  • A miss B(暴力+BFS)

    2014-12-25 21:52:31
    题目描述 有一天NoSoul跟他女朋友去一个游乐场玩,在一个迷宫里,悲了个催的,他们俩走丢了„„ 现在给出迷宫的具体...接下来是一个X行,Y列的字符矩阵。矩阵中的字符含义如下:  A:代表NoSoul初始时所在的位置
  • 描述: 比如一个List集合中List<对象1>,该对象1包含AB和C 另外一个List集合中List<...需要判断出哪个List集合的数据比较少,例如第二个集合数据少,可以执行: Map<String,User2...
  • 赛题以金融风控中的个人信贷为背景,要求选手贷款申请人的数据信息预测其是否有违约的可能,以此判断是否通过此项贷款,这是一个典型的分类问题。该数据来自某信贷平台的贷款记录,总数据量超过120w,包含47变量...
  • 数据结构(C++)有关练习题

    热门讨论 2008-01-02 11:27:18
    e. 如有可能,请建立一个存储商品名称和数量的文本文件,并为二叉搜索树建立一个成员函数SetupInventory(),用于从该文本文件中读取库存商品的数据, 实验报告要求: 1、 按要求记录下二叉搜索树的完整实验...
  • 弄了一些竞品评论数据 增加了一个函数 EXCEL判断字符串中是否包含某个特定子串公式 判断字符串中是否包含...", B列中输入公式判断是否包含子串 "大家", 包含返回"有内容", 不包含返回"无内容". 1. COUN...
  • python 基础-----list查找重复值

    千次阅读 2018-07-20 17:37:40
    需求1:假设df1、df2两个数据集中分别有A、B列数据,需要判断AB列的数据是否有差异,并显示差异的数据。 需求2:假设有某列数据,需要判断该列数据是否包含重复项,包含的重复项是什么,重复了多少次。 一、需求...
  • Description给出三个行数和数均为N矩阵A、B、C,判断A*B=C是否成立。Input题目可能包含若干组数据。 对于每组数据,第一行一个数N,接下来给出三个N*N矩阵,依次为A、B、C三个矩阵。 Output对于每组数据,...
  • 给出三个行数和数均为N矩阵A、B、C,判断A*B=C是否成立。 题目可能包含若干组数据。 对于每组数据,第一行一个数N,接下来给出三个N*N矩阵,依次为A、B、C三个矩阵。 对于每组数据,若A*B=C成立...
  • Description 给出三个行数和数均为N矩阵A、B、C,判断A*B=C是否成立。Input 题目可能包含若干组数据。 对于每组数据,第一行一个数N,接下来给出三个N*N矩阵,依次为A、B、C三个矩阵。 Output 对于每组数据...
  • Python条件过滤数据

    2021-01-22 21:55:14
    有这样三个数据集 <p>1.uuid 用户信息 <code>uuid.head() Out[29]: Unnamed: 0 user_id name review_count \ 0 7 f4_MRNHvN-yRn7EA8YWRxg Jennifer 822 1 35 dIIKEfOgo0KqUfGQvGikPg Gabi 2061 2 44 o-...
  • 给出三个行数和数均为N矩阵A、B、C,判断A*B=C是否成立。 Input 题目可能包含若干组数据。 对于每组数据,第一行一个数N,接下来给出三个N*N矩阵,依次为A、B、C三个矩阵。 Output 对于每...
  • 给出三个行数和数均为N矩阵A、B、C,判断A*B=C是否成立。 输入 题目可能包含若干组数据。对于每组数据,第一行一个数N,接下来给出三个N*N矩阵,依次为A、B、C三个矩阵。 输出 对于每组数据,若A*B=C成立...
  •  给出三个行数和数均为N矩阵A、B、C,判断A*B=C是否成立。 Input  题目可能包含若干组数据。  对于每组数据,第一行一个数N,接下来给出三个N*N矩阵,依次为A、B、C三个矩阵。 Output  对于每组数据...
  • excel使用

    2012-11-25 17:06:01
    这时再删掉B、C、D列的数据。下面是一个“&”实际应用的例子。用AutoCAD绘图时,有人喜欢在EXCEL中存储坐标点,在绘制曲线时调用这些参数。存放数据格式为“x,y”的形式,首先在Excel中输入坐标值,将x坐标值放入A...
  • 2396: 神奇矩阵 Time Limit: 5 Sec Memory Limit: 512 MB ...给出三个行数和数均为N矩阵A、B、C,判断A*B=C是否成立。 Input 题目可能包含若干组数据。 对于每组数据,第一行一个数N,接下来给出三个N
  • 2396: 神奇矩阵

    2016-12-11 15:02:50
    2396: 神奇矩阵 Time Limit: 5 Sec Memory Limit: 512 MB Submit: 1072 Solved: 307 ... 给出三个行数和数均为N矩阵A、B、C,判断A*B=C是否成立。 Input  题目可能包含若干组数据。  对
  • 近期代码一点总结

    2018-05-09 09:44:38
    1、判断连续3条数据的某一列的值是否相同。一开始我使用的是sparksql来做的,做法很简单:首先对eA表数据添加一个row_number()作为唯一标识id,然后自己关联自己,写法如下,select a.id, a.status,b.status,c.status...
  • poj—2488骑士旅程

    2016-04-11 22:39:47
    1第一行首先给出一个整数,表示要测试的数据组数,接下来每一行包含两个整数,第一个整数为矩阵的行数,第二个数为矩阵的数,矩阵的行从第一行开始依次标记为1,2,....数从第一开始依次标记为A,B,C......。 2...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 198
精华内容 79
关键字:

判断a列包含b列的数据