【发布时间】:2021-04-10 22:16:57
【问题描述】:
我得到了以下熊猫数据框:
| Value1 | Value2 | Food |
|---|---|---|
| -2 | 2 | Apple |
| 5 | -5 | Orange |
| -4 | 3 | Peach |
| -2 | 6 | Pineapple |
我现在正尝试根据“Value1”值将行拆分为 2 个数据框。所以结果看起来像这样:
负值1:
| Value1 | Value2 | Food |
|---|---|---|
| -2 | 2 | Apple |
| -4 | 3 | Peach |
| -2 | 6 | Pineapple |
负值2:
| Value1 | Value2 | Food |
|---|---|---|
| 5 | -5 | Orange |
到目前为止,我已经使用了结合 if 语句的 for 循环:
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)
谁能帮忙?
【问题讨论】:
标签: pandas sorting if-statement lambda