代码之家  ›  专栏  ›  技术社区  ›  William

设置Pandas DataFrame列的字符限制

  •  0
  • William  · 技术社区  · 2 年前

    背景:
    给定以下熊猫 df -

    持有账户 型号 实体ID 直接所有者ID
    WF有限责任公司| 100 Jones Street 26th Floor旧金山Ca有限责任公司负债-仅限美国收入总额(486941515) 51364633 4564564 5646546
    RF LLC|Neuberger|LLC|Aukai Services LLC Neuberger Smid-Income Accuring Net of Fees Worldwide Fund(456456218) 46256325 1645365 4926654

    提问:
    Holding Account 柱( dtype = object )价值观?

    上下文:我正在写作 df .csv 然后随后上传到具有80个字符限制的系统。的值 持有账户 列是唯一的,所以我只想牺牲那些占用字符串超过80个字符的字符。

    我的尝试:
    这就是我尝试的- df['column'] = df['column'].str[:80]

    2 回复  |  直到 2 年前
        1
  •  1
  •   user17242583 user17242583    2 年前

    为什么不直接使用 .str ,就像你在做什么?

    df['Holding Account'] = df['Holding Account'].str[:80]
    

    输出:

    >>> df
                                                                        Holding Account  Model Type  Entity ID  Direct Owner ID
    0  WF LLC | 100 Jones Street 26th Floor San Francisco Ca Ltd Liability - Income Bas    51364633    4564564          5646546
    1  RF LLC | Neuberger | LLC | Aukai Services LLC-Neuberger Smid - Income Accuring N    46256325    1645365          4926654
    
        2
  •  0
  •   BENY    2 年前

    使用slice会丢失一些信息,我建议在因子化后创建一个映射表。这也节省了服务器或数据库的存储空间

    s = df['Holding Account'].factorize()[0]
    df['Holding Account'] = df['Holding Account'].factorize()[0]
    d = dict(zip(s, df['Holding Account']))
    

    如果你想获得数据库,那就去吧

    df['new'] = df['Holding Account'] .map(d)