首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python用3个变量和3列左联接

Python用3个变量和3列左联接
EN

Stack Overflow用户
提问于 2022-07-03 14:50:00
回答 1查看 47关注 0票数 0

我有两个数据(点和日期)离开联接或执行一个vlookup,但我有3个不同的变量加入每一行。

数据文件:

代码语言:javascript
复制
idx = [(0,1,2),(0,5,7)]
data = {'pointx': [11, 35],
    'pricey': [1119, 943.7],}
points = pd.DataFrame(data, index = idx)
print(points)

initial_data = {'points': [4, 11, 16, 23, 31, 35, 39, 46],
    'Date': ['16/12/2021', '28/12/2021', '4/1/2022', '13/1/2022', '26/1/2022', '1/2/2022', '7/2/2022', '16/2/2022'],
    'High': [994.97998, 1119, 1208, 1115.599976, 987.690002, 943.700012, 947.77002, 926.429993],}
Dates = pd.DataFrame(initial_data)
print(Dates)

我需要得到这样的结果:

其中,"points“dataframe根据索引号(0、1、2)创建了3个新列,日期是日期数据中的日期。

当您有一个列&变量时,我已经找到了几个解决方案,但是将这三个数字放在一起对我来说很困难,而且也是索引的一部分,而不是列,对于如何解决这样的问题,有什么见解吗?

代码语言:javascript
复制
result = pd.merge(points, Dates, on="idx")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-03 14:59:23

您可以在行上尝试apply

代码语言:javascript
复制
points[['Date1', 'Date2', 'Date3']] = (points.apply(lambda row: Dates.loc[list(row.name), 'Date'].tolist(), axis=1, result_type='expand'))
points = points.reset_index(drop=True)
代码语言:javascript
复制
print(points)

   pointx  pricey       Date1       Date2      Date3
0      11  1119.0  16/12/2021  28/12/2021   4/1/2022
1      35   943.7  16/12/2021    1/2/2022  16/2/2022
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72847469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档