我有这个数据框:
df = pd.DataFrame({"X" : ["2017-12-17","2017-12-18","2017-12-19"],
"Y": ["F","W","Q"]})
我正在寻找key
列:
X Y key
0 2017-12-17 F 2017-12-17_F
1 2017-12-18 W 2017-12-18_W
2 2017-12-19 Q 2017-12-19_Q
我尝试过1,2,3,而最好的解决方案是(为了提高速度,因为它们接近一百万行):
df.assign(key=[str(x) + "_" + y for x, y in zip(df["X"], df["Y"])])
这给了我这个错误:
TypeError: unsupported operand type(s) for +: 'Timestamp' and 'str'
为什么?
答案 0 :(得分:0)
看起来您的X
列不是发布的字符串,而是TimeStamp
。无论如何,您可以尝试:
df['key'] = df.X.astype(str) + '_' + df.Y.astype(str)