繁体   English   中英

如何使用pandas-python将递归条件应用于数据框?

[英]How to apply a recursively condition to a data frame using pandas-python?

我有一个大型数据集,我正在尝试创建一个函数来计算任何行与其前一个行之间的差异,该行被分配给Difference1。 如果递归之间的行之间有任何负面结果,我想删除/删除。 我有一个有60000行的数据框对象。

import pandas as pd
df=pd.read_csv('Second Run.csv') 

df['Difference1']=df['DEPTH(ft)'].diff()
df.drop(df[df['Difference1'] < 0].index, inplace=True)

df['Difference2']=df['DEPTH(ft)'].diff()
df['Difference2']

结果:

0            NaN
1658      0.0394
2531      0.1148
2624      0.0788
2838      0.1148
2839      0.1936
2845      0.1181
2846      0.0754
2880      0.3117
2881      8.4449
2882      2.1719
2883      2.7132
2884      5.8104
2885      4.6884
2886      6.9357
2887      6.0827
2888      1.3582
2889      0.0755
2890      0.1181
2914      2.1292
2915      7.0932
2916      6.3156
2917      7.3229
2918      6.4337
2919     10.1903
2920      9.8031
2921      9.8819
2922      8.1365
2923      2.8675
2946      9.4521
          ...   
20868   -10.9679
20869    -5.4232
20870    -7.9036
20871    -3.6810
20872    -2.0539
20897    -1.6273
20899    -0.5446
20901    -4.2224
20902    -1.8209
20926    -0.5052
20927    -0.5020
20930    -0.5053
20931    -1.6273
20932    -0.0393
20955    -2.3622
20959    -0.2329
20966    -0.1149
20968     0.7743
20969     0.0755
20970     0.0787
20974    -0.0394
20977    -0.2329
20983     0.7775
20984     0.0755
21159    -0.0394
21160    -0.2690
21166    -0.1575
21170     0.0787
24121     0.1936
26929     0.0394

你知道如何解决这个问题吗? 先感谢您!

尝试:

While True:
    df['Difference'] = (df['DEPTH(ft)'].diff() < 0)
    if any(df.Difference):
        df.drop(df[df['Difference']].index, inplace=True)
    else:
        break

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM