在Python Pandas中找到一列的最小值大于另一列的值

朱维

我正在使用Python。我有两个数据框df1和df2:

d1 = {'timestamp1': [88148  , 5617900, 5622548, 5645748, 6603950, 6666502], 'col01': [1, 2, 3, 4, 5, 6]}
df1 = pd.DataFrame(d1)

d2 = {'timestamp2': [5629500, 5643050, 6578800, 6583150, 6611350], 'col02': [7, 8, 9, 10, 11], 'col03': [0, 1, 0, 0, 1]}
df2 = pd.DataFrame(d2)

我想在df1中创建一个新列,其中df2的最小时间戳值大于当前df1时间戳,其中df2 ['col03']为零。这是我做到的方式:

df1['colnew'] = np.nan
TSs = df1['timestamp1']
for TS in TSs:
values = df2['timestamp2'][(df2['timestamp2'] > TS) & (df2['col03']==0)]
    if not values.empty:
        df1.loc[df1['timestamp1'] == TS, 'colnew'] = values.iloc[0]

它可以工作,但是我不希望使用for循环。有一个更好的方法吗?

海盗

pandas.merge_asof向前使用

pd.merge_asof(
    df1, df2.loc[df2.col03 == 0, ['timestamp2']],
    left_on='timestamp1', right_on='timestamp2', direction='forward'
).rename(columns=dict(timestamp2='colnew'))

   col01  timestamp1     colnew
0      1       88148  5629500.0
1      2     5617900  5629500.0
2      3     5622548  5629500.0
3      4     5645748  6578800.0
4      5     6603950        NaN
5      6     6666502        NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python pandas:对于一列中的每个唯一值,在另一列中找到一个最小值并从另一列的值中减去它

Python Pandas-根据另一列获取一列的最小值,并将另一列分组

在第一列相同的所有行中找到Pandas,Python中的最小值,最大值,平均值

根据数组的另一列在一列中聚合最小值最大值-Python

如何用一列的最大值与另一列的最小值之间的差异将一列中的df按Python分组?

Python Pandas在另一列的元素列表中找到一列的元素

Python / Pandas在一列中找到最接近/最接近的值

numpy python:在另一列中为每个唯一值从一列中找到最大值

python数据框新列基于另一列,数据框的条件最小值为

Pandas / Python:根据另一列中的值设置一列的值

根据一列的最小值和最大值恢复所有行-Python Pandas

Pandas 基于另一列 python 获取一列中的唯一值

Python 查找最小值。二维数组中每一列的值

如果另一列中的值等于Python熊猫中的特定值,是否可以计算2个或更多列的最大值/最小值?

Python Pandas分组并基于另一列排除值

根据另一列(Python,Pandas)中的值删除一列的重复项

Python Pandas DataFrame检查一列的值是否在另一列表中

对于一列的所有唯一“单词”,从另一列中找到唯一的单元格,然后在python中平均另一列的对应值

如何从python矩阵的每一列中选择具有最多最小值的行?

使用python查找CSV文件的每一列的最小值

如何在or-tools一维数组(python或-tools)中找到大于0的最小值

pandas当另一列与python中的值匹配时,只获取一列的平均值(浮动)值

Python pandas - 为另一列中的每个不同值显示一列中记录数最多的值

Python Pandas DataFrame:查找另一列的每个唯一值的最大值

检查一列中的值是否在Python中另一列的间隔值中

Python:为另一列中的单个值显示一列中的多个值

创建一列,其值是python中另一列范围的最大值

在与另一列对应的列中找到最大值和最小值

Python Dataframe:基于另一列更改列的值?