gpt4 book ai didi

pandas - 我想在列上使用 lambda 将 DataFrame 拆分为 2 个 df

转载 作者:行者123 更新时间:2023-12-04 07:49:52 25 4
gpt4 key购买 nike

我得到了以下 Pandas 数据帧:


值1
值2
食物


-2
2
苹果

5
-5
橘子

-4
3


-2
6
菠萝


我现在试图根据“Value1”值将行拆分为 2 个数据帧。所以结果看起来像这样:
负值1:


值1
值2
食物


-2
2
苹果

-4
3


-2
6
菠萝


负值2:


值1
值2
食物


5
-5
橘子


到目前为止,我已经将 for 循环与 if 语句结合使用:

for i in range(len(data)):
if data['Value1'].iloc[i] < 0:
NegativeValue1 = NegativeValue1.append(data.iloc[i])
else:
NegativeValue2 = NegativeValue2.append(data.iloc[i])
, 效果很好,但对于大型 df 来说太耗时了。
因此,我想构建一个 lambda 函数来执行此操作,但我对 lambda 没有太多经验。
到目前为止,我的尝试没有成功:
NegativeValue1 = NegativeValue1.apply(lambda data:  if data['Value1']  < 0, axis = 1)
任何人都可以帮忙吗?

最佳答案

您可以使用 bool 索引:

mask = df["Value1"] < 0

print(df[mask])
print("-" * 80)
print(df[~mask])
打印:
   Value1  Value2       Food
0 -2 2 Apple
2 -4 3 Peach
3 -2 6 Pineapple
--------------------------------------------------------------------------------
Value1 Value2 Food
1 5 -5 Orange

关于pandas - 我想在列上使用 lambda 将 DataFrame 拆分为 2 个 df,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67039752/

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