【问题标题】:What is the pandas version of tidyr::separate? [duplicate]tidyr::separate 的熊猫版本是什么? [复制]
【发布时间】:2020-01-09 10:08:12
【问题描述】:

R 包tidyr 有一个很好的separate 函数来“将一列分成多列。”

什么是熊猫版本?

例如这里是一个数据集:

import pandas
from six import StringIO
df = """  i  | j | A
         AR  | 5 | Paris,Green
         For | 3 | Moscow,Yellow
         For | 4 | New York,Black"""
df = StringIO(df.replace(' ',''))
df = pandas.read_csv(df, sep="|", header=0)

我想将 A 列分成 2 列,其中包含 2 列的内容。

这个问题相关:Accessing every 1st element of Pandas DataFrame column containing lists

【问题讨论】:

    标签: python pandas tidyr


    【解决方案1】:

    tidyr::separate 的等价物是带有特殊赋值的 str.split

    df['Town'], df['Color'] = df['A'].str.split(',', 1).str
    print(df)
    
    #      i  j              A     Town   Color
    # 0   AR  5    Paris,Green    Paris   Green
    # 1  For  3  Moscow,Yellow   Moscow  Yellow
    # 2  For  4  NewYork,Black  NewYork   Black
    

    tidyr::unite 的等价物是字符向量的简单串联:

    df["B"] = df["i"] + df["A"]
    df
    #      i  j              A                 B
    # 0   AR  5    Paris,Green     ARParis,Green
    # 1  For  3  Moscow,Yellow  ForMoscow,Yellow
    # 2  For  4  NewYork,Black  ForNewYork,Black
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-27
      • 2017-06-05
      • 1970-01-01
      • 2017-07-16
      • 2020-03-22
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多