Python 将筛选自列表的值传递给数据帧
我想把一个值从list放到df列,条件取决于另一列。我尝试了这个,但它抛出了Python 将筛选自列表的值传递给数据帧,python,pandas,dataframe,filter,Python,Pandas,Dataframe,Filter,我想把一个值从list放到df列,条件取决于另一列。我尝试了这个,但它抛出了ValueError: terms = [0.02, 0.08, 0.24, 0.5, 1, 2] df['col_1'] = max(list(filter(lambda x: x < df['col_2'], terms))) terms=[0.02,0.08,0.24,0.5,1,2] df['col_1']=max(列表(过滤器(λx:x
ValueError
:
terms = [0.02, 0.08, 0.24, 0.5, 1, 2]
df['col_1'] = max(list(filter(lambda x: x < df['col_2'], terms)))
terms=[0.02,0.08,0.24,0.5,1,2]
df['col_1']=max(列表(过滤器(λx:x
col_1
必须包含最接近col_2
的小于它的值。对于0.35
,我想把0.24
如果没有循环,我如何实现这一点?这是
merge\u asof
:
df = pd.DataFrame({'col_2':[0.35]})
pd.merge_asof(df,pd.DataFrame({'col_1':terms}),
left_on='col_2',
right_on='col_1')
输出:
col_2 col_1
0 0.35 0.24
这是
merge\u asof
:
df = pd.DataFrame({'col_2':[0.35]})
pd.merge_asof(df,pd.DataFrame({'col_1':terms}),
left_on='col_2',
right_on='col_1')
输出:
col_2 col_1
0 0.35 0.24
您可以使用
merge\u asof
解决许多问题。我想知道它背后的思想过程是什么。这只是天才+1.您使用merge\u asof
解决了很多问题。我想知道它背后的思想过程是什么。这只是天才+1.