我在处理Python时遇到了麻烦。我有PD数据帧,我需要删除所有行,这些行是在特定值之后(在代码值中写入称为年份的列表)所有值都应按公司名称分组,因为这些obserevation属于“inn_main”列中提到的公司。我真的不明白如何使用Pandas功能做到这一点。我找到了一种方法,但它非常丑陋,效率不高。
import pandas as pd
data = {'inn_main':['Apple', 'Apple', 'Apple', 'Apple', 'Tesla', 'Tesla', 'Tesla'], 'Help':['OK', 'OK', 2013, 'OK','OK', 2014, 'OK']}
df = pd.DataFrame(data)
droper=[]
block=0
years=[2012,2013,2014,2015,2016,2017,2018]
for j in range(len(list(df['Help'].groupby(df['inn_main'])))):
alarm=0
for i in range(len(list(df['Help'].groupby(df['inn_main']))[j][1].index.values)):
if list(df['Help'].groupby(df['inn_main']))[j][1][list(df['Help'].groupby(df['inn_main']))[j][1].index.values[i].astype(int)] in years:
block=1
alarm=1
if block==1:
block=0
else:
if alarm==1:
droper.append(list(df['Help'].groupby(df['inn_main']))[j][1].index.values[i].astype(int))
df.drop(index=droper)
你能告诉我我到底做错了什么吗?有什么捷径吗?
慕雪6442864
慕的地6264312
拉风的咖菲猫
相关分类