Python 查找具有满足条件的3列或更多列的所有行
我有一个数据框,其中包含一个球员的形式和外观作为浮动为5个赛季。 我的目标是删除所有未满两个赛季的球员 下面是数据帧的一个示例 这是谷歌硬盘上csv文件中数据框的链接 我想删除的一个例子是亚伦·休斯,他只在13/14和12/13两个赛季打过球,或者阿卜杜拉耶·迪亚比,他只在14/15赛季打过球 我想留住的一名球员就是至少打了4个赛季的阿卜杜拉耶·凯塔 我的预期产出是:Python 查找具有满足条件的3列或更多列的所有行,python,pandas,dataframe,jupyter-notebook,Python,Pandas,Dataframe,Jupyter Notebook,我有一个数据框,其中包含一个球员的形式和外观作为浮动为5个赛季。 我的目标是删除所有未满两个赛季的球员 下面是数据帧的一个示例 这是谷歌硬盘上csv文件中数据框的链接 我想删除的一个例子是亚伦·休斯,他只在13/14和12/13两个赛季打过球,或者阿卜杜拉耶·迪亚比,他只在14/15赛季打过球 我想留住的一名球员就是至少打了4个赛季的阿卜杜拉耶·凯塔 我的预期产出是: Players club 16/17 15/16 14/15 13/14 12/13 17/18
Players club 16/17 15/16 14/15 13/14 12/13 17/18
Form Apps Form Apps Form Apps Form Apps Form Apps Form Apps
0 Aaron Cresswell West Ham United 2.269231 26.0 3.108108 37.0 2.921053 38.0 0.000000 0.0 0.000000 0.0 2.400000 30.0
1 Aaron Hunt Hamburger SV 2.590909 22.0 2.136364 22.0 1.800000 15.0 3.741935 31.0 4.035714 28.0 2.500000 24.0
2 Aaron Lennon Everton 1.818182 11.0 2.760000 25.0 2.217391 23.0 2.555556 27.0 3.147059 34.0 1.913043 23.0
3 Aaron Ramsey Arsenal 2.173913 23.0 3.096774 31.0 3.241379 29.0 4.956522 23.0 1.833333 36.0 4.300000 20.0
4 Abdoul Camara En Avant de Guingamp 0.000000 0.0 2.235294 17.0 0.000000 0.0 1.500000 10.0 1.666667 15.0 0.000000 0.0
5 Abdoulaye Doucoure Watford 1.750000 20.0 4.558333 31.0 2.600000 35.0 3.750000 20.0 3.250000 4.0 3.000000 32.0
6 Abdoulaye Keita Le Havre AC 1.571429 21.0 1.000000 4.0 2.000000 5.0 1.200000 5.0 0.000000 0.0 0.00
任何帮助都将不胜感激!
谢谢x=0
i=0
数组=[]
而i9.0:
x+=1
elif df['15/16']['Apps'][i]>9.0:
x+=1
elif df['14/15']['Apps'][i]>9.0:
x+=1
elif df['13/14']['Apps'][i]>9.0:
x+=1
elif df['12/13']['Apps'][i]>9.0:
x+=1
如果x>2:
array.append(True)
x=0
其他:
array.append(False)
x=0
测向[阵列]
@cᴏʟᴅsᴘᴇᴇᴅ 我也加入了样本代码,我使用了一个图像,因为它看起来混乱的道歉如果数据是混乱的,考虑烹饪一些假数据。我还建议您发布您的预期输出。祝你好运ᴏʟᴅsᴘᴇᴇᴅ 这是混乱的,因为有太多的列,但他们需要包括在样本中,我将包括一个预期的输出现在,我是新的StackOverflow抱歉!现在全部添加到@c中ᴏʟᴅsᴘᴇᴇᴅ@T先生感谢您的建议,我已经将csv文件与Google Drive上的整个数据帧链接起来
x = 0
i = 0
array = []
while i < len(df):
if df['16/17']['Apps'][i] > 9.0:
x += 1
elif df['15/16']['Apps'][i] > 9.0:
x += 1
elif df['14/15']['Apps'][i] > 9.0:
x += 1
elif df['13/14']['Apps'][i] > 9.0:
x += 1
elif df['12/13']['Apps'][i] > 9.0:
x += 1
if x > 2:
array.append(True)
x = 0
else:
array.append(False)
x = 0
df[array]
**Here is a better solution to your question.**
df['count'] = 0
df.loc[df['16/17']['Apps']>9.0, 'count'] += 1
df.loc[df['15/16']['Apps']>9.0, 'count'] += 1
df.loc[df['14/15']['Apps']>9.0, 'count'] += 1
df.loc[df['13/14']['Apps']>9.0, 'count'] += 1
df.loc[df['12/13']['Apps']>9.0, 'count'] += 1
df[df['count']>3]