gpt4 book ai didi

python - pandas 中查找的多种条件

转载 作者:太空宇宙 更新时间:2023-11-03 21:28:55 25 4
gpt4 key购买 nike

我有 2 个数据框。一张包含城市、日期和销售额

sales = [['20101113','Miami',35],['20101114','New York',70],['20101114','Los Angeles',4],['20101115','Chicago',36],['20101114','Miami',12]]

df2 = pd.DataFrame(sales,columns=['Date','City','Sales'])

print (df2)

Date City Sales
0 20101113 Miami 35
1 20101114 New York 70
2 20101114 Los Angeles 4
3 20101115 Chicago 36
4 20101114 Miami 12

第二个有一些日期和城市。

date = [['20101114','New York'],['20101114','Los Angeles'],['20101114','Chicago']]

df = pd.DataFrame(date,columns=['Date','City'])

print (df)

我想从与第三个数据帧中的城市和日期匹配的第一个数据帧中提取销售额,并将销售额添加到第二个数据帧中。如果第一个表中缺少该日期,则应检索下一个最高日期的销售额。

新的数据框应如下所示

       Date         City  Sales

0 20101114 New York 70

1 20101114 Los Angeles 4

2 20101114 Chicago 36

我在提取和合并表格时遇到问题。有什么建议吗?

最佳答案

这是pd.merge_asof,它允许您连接精确匹配的组合,然后连接某些列的“紧密”匹配。

import pandas as pd

df['Date'] = pd.to_datetime(df.Date)
df2['Date'] = pd.to_datetime(df2.Date)

pd.merge_asof(df.sort_values('Date'),
df2.sort_values('Date'),
by='City', on='Date',
direction='forward')

输出:

        Date         City  Sales
0 2010-11-14 New York 70
1 2010-11-14 Los Angeles 4
2 2010-11-14 Chicago 36

关于python - pandas 中查找的多种条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53659392/

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