【问题标题】:Concatenate two or more variables using Pandas to create a new variable使用 Pandas 连接两个或多个变量以创建新变量
【发布时间】:2014-12-07 02:03:07
【问题描述】:

输入数据集:

Var1     Var2   Var3    Var4

101 XXX       yyyy   12/10/2014

101  XYZ      YTRT  13/10/2014

102  TTY       UUUU  9/9/2014

102  YTY      IUYY   10/10/2014

预期数据集:

Var1     Var2   Var3    Var4         New_Variable

101 XXX       yyyy   12/10/2014       XXX, yyyy

101  XYZ      YTRT  13/10/2014        XYZ, YTRT

102  TTY       UUUU  9/9/2014         TTY, UUUU

102  YTY      IUYY   10/10/2014       YTY, IUYY

如何连接两个或多个字符串变量并创建一个新变量来捕获同一数据集中的连接值?

【问题讨论】:

    标签: python string pandas dataframe concat


    【解决方案1】:

    您可以使用cat 方法。

    这是一个例子:

    >>> df = pd.DataFrame({'a':['x','y','z'], 'b': ['x','y','z'], 'c': ['x','y','z']})
    >>> df
       a  b  c
    0  x  x  x
    1  y  y  y
    2  z  z  z
    

    现在您可以使用cat 方法在您选择的一个列上创建一个新列。使用others 参数指定您想要连接的其他列,并使用sep 参数指定您的分隔符:

    >>> df["new"] = df.a.str.cat(others=[df.b, df.c], sep=', ')
    >>> df
       a  b  c      new
    0  x  x  x  x, x, x
    1  y  y  y  y, y, y
    2  z  z  z  z, z, z
    

    【讨论】:

    • 感谢您的帮助。我在使用 cat 功能时遇到以下错误,您能帮帮我吗?文件“C:\Python27\lib\site-packages\pandas\core\strings.py”,第 86 行,在 _length_check 中引发 ValueError('All arrays must be same length') ValueError: All arrays must be same length
    • @user3738411 完全没问题。该错误表明您尝试连接的列的长度并不完全相同(它们需要使用cat)。你觉得这可能吗?
    • 你能指导我吗?一种改变现有变量长度的方法
    • @user3738411 如果列来自同一个 DataFrame,它们应该是相同的长度(即相同的行数)。对于您问题中的示例,df.Var2.str.cat(others=[df.Var3], sep=', ') 应该可以正常工作。
    猜你喜欢
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多