gpt4 book ai didi

python - 用 Pandas 连接两列

转载 作者:行者123 更新时间:2023-11-28 22:39:32 25 4
gpt4 key购买 nike

嘿,我正在尝试在 Pandas 中合并两列,但出于某种原因,我在这样做时遇到了麻烦。

这是我的数据:

OrderId OrderDate   UserId  TotalCharges    CommonId    PupId   PickupDate  Month   Year
0 262 1/11/2009 47 $ 50.67 TRQKD 2 1/12/2009 1 2009
1 278 1/20/2009 47 $ 26.60 4HH2S 3 1/20/2009 1 2009
2 294 2/3/2009 47 $ 38.71 3TRDC 2 2/4/2009 2 2009
3 301 2/6/2009 47 $ 53.38 NGAZJ 2 2/9/2009 2 2009
4 302 2/6/2009 47 $ 14.28 FFYHD 2 2/9/2009 2 2009

我想使用“Month”和“Year”列,这样他们就可以创建一个具有以下格式的新列:

"2009-1"
"2009-1"
"2009-1"
"2009-2"
"2009-2"

当我尝试这样做时:

df['OrderPeriod'] = df[['Year', 'Month']].apply(lambda x: '-'.join(x), axis=1)

我收到这个错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-24-ebbfd07772c4> in <module>()
----> 1 df['OrderPeriod'] = df[['Year', 'Month']].apply(lambda x: '-'.join(x), axis=1)

/Users/robertdefilippi/miniconda2/lib/python2.7/site-packages/pandas/core/frame.pyc in apply(self, func, axis, broadcast, raw, reduce, args, **kwds)
3970 if reduce is None:
3971 reduce = True
-> 3972 return self._apply_standard(f, axis, reduce=reduce)
3973 else:
3974 return self._apply_broadcast(f, axis)

/Users/robertdefilippi/miniconda2/lib/python2.7/site-packages/pandas/core/frame.pyc in _apply_standard(self, func, axis, ignore_failures, reduce)
4062 try:
4063 for i, v in enumerate(series_gen):
-> 4064 results[i] = func(v)
4065 keys.append(v.name)
4066 except Exception as e:

<ipython-input-24-ebbfd07772c4> in <lambda>(x)
----> 1 df['OrderPeriod'] = df[['Year', 'Month']].apply(lambda x: '-'.join(x), axis=1)

TypeError: ('sequence item 0: expected string, numpy.int32 found', u'occurred at index 0')

我真的不知道如何连接这两列。

帮忙吗?

最佳答案

您需要将值转换为字符串才能使用连接。

df['OrderPeriod'] = df[['Year', 'Month']]\
.apply(lambda x: '-'.join(str(value) for value in x), axis=1)

关于python - 用 Pandas 连接两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34670374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com