Python 在CSV中,如果特定列中的单元格值低于1000亿,如何去除带有熊猫的行?

Python 在CSV中,如果特定列中的单元格值低于1000亿,如何去除带有熊猫的行?,python,pandas,csv,Python,Pandas,Csv,我正在尝试过滤一个CSV,并创建一个新的CSV,除了在“marketcap”列中删除任何值大于1000亿的行之外,它是完全相同的 我所写的代码只是重复输出与原始CSV相同的CSV,并且没有从旧CSV到新CSV之间剪切任何行 代码: 新CSV示例(该行应被剪切时完全相同): 我在StackOverflow上看到了两个与此相关的问题,但它们对我帮助不大。使用CSV库而不是熊猫(这是我的一个选项)。更有用,因为它使用pandas,但尚未与pandas交互,并且与我的用例不完全相同。您可以通过“mark

我正在尝试过滤一个CSV,并创建一个新的CSV,除了在“marketcap”列中删除任何值大于1000亿的行之外,它是完全相同的

我所写的代码只是重复输出与原始CSV相同的CSV,并且没有从旧CSV到新CSV之间剪切任何行

代码:

新CSV示例(该行应被剪切时完全相同):


我在StackOverflow上看到了两个与此相关的问题,但它们对我帮助不大。使用CSV库而不是熊猫(这是我的一个选项)。更有用,因为它使用pandas,但尚未与pandas交互,并且与我的用例不完全相同。

您可以通过
“marketcap”
获得超过1000亿行的行索引,如下所示:

df.loc[df["marketcap"] > 100000000000]["marketcap"].index
剩下要做的就是将它们从
数据帧中删除:

df.drop(df.loc[df["marketcap"] > 100000000000]["marketcap"].index, inplace=True)

从CSV读取和写入CSV已经在您的代码中得到正确处理。

您可能需要在筛选之前将
marketcap
列转换为整数。试着这样做:
db=db.astype({'marketcap':int})
我试过了,得到了一个错误:ValueError:
无法将非有限值(NA或inf)转换为整数
试着使用
np。其中
我不知道如何以及在我的代码中实现它
db['marketcap'}=np.where(db['marketcap']=
然后我不太确定它等于什么。在发送的问题链接中,.where正在尝试更改单元格的值,那么我如何将它们更改为整数以便可以使用它们?@george.adams1使用以下命令:
db.dropna(subset=['marketcap',inplace=True)
您编写的df应该是db right?@george.adams1yes@gmdevI不断出现无法将文件中的单元格转换为整数的问题,以便使用上面显示的代码在csv中删除超过1000亿行。
x['marketcap']=[['marketcap']]=db.apply(pd.to_numeric(db))db=db.astype({'marketcap':int})
我一直收到错误
AttributeError:'NoneType'对象没有属性'astype'
@george.adams1您的CSV中缺少值吗?我有,但我已经使用了
db=db.dropna(subset=['marketcap'],inplace=True)
来摆脱它们
,ticker,dimension,calendardate,datekey,reportperiod,lastupdated,accoci,assets,assetsavg,assetsc,assetsnc,assetturnover,bvps,capex,cashneq,cashnequsd,cor,consolinc,currentratio,de,debt,debtc,debtnc,debtusd,deferredrev,depamor,deposits,divyield,dps,ebit,ebitda,ebitdamargin,ebitdausd,ebitusd,ebt,eps,epsdil,epsusd,equity,equityavg,equityusd,ev,evebit,evebitda,fcf,fcfps,fxusd,gp,grossmargin,intangibles,intexp,invcap,invcapavg,inventory,investments,investmentsc,investmentsnc,liabilities,liabilitiesc,liabilitiesnc,marketcap,ncf,ncfbus,ncfcommon,ncfdebt,ncfdiv,ncff,ncfi,ncfinv,ncfo,ncfx,netinc,netinccmn,netinccmnusd,netincdis,netincnci,netmargin,opex,opinc,payables,payoutratio,pb,pe,pe1,ppnenet,prefdivis,price,ps,ps1,receivables,retearn,revenue,revenueusd,rnd,roa,roe,roic,ros,sbcomp,sgna,sharefactor,sharesbas,shareswa,shareswadil,sps,tangibles,taxassets,taxexp,taxliabilities,tbvps,workingcapital
0,A,ARQ,1999-12-31,2000-03-15,2000-01-31,2020-09-01,53000000.0,7107000000.0,,4982000000.0,2125000000.0,,10.219,-30000000.0,1368000000.0,1368000000.0,1160000000.0,131000000.0,2.41,0.584,665000000.0,111000000.0,554000000.0,665000000.0,281000000.0,96000000.0,0.0,0.0,0.0,202000000.0,298000000.0,0.133,298000000.0,202000000.0,202000000.0,0.3,0.3,0.3,4486000000.0,,4486000000.0,50960600000.0,,,354000000.0,0.8059999999999999,1.0,1086000000.0,0.484,0.0,0.0,4337000000.0,,1567000000.0,42000000.0,42000000.0,0.0,2621000000.0,2067000000.0,554000000.0,51663600000.0,1368000000.0,-160000000.0,2068000000.0,111000000.0,0.0,1192000000.0,-208000000.0,-42000000.0,384000000.0,0.0,131000000.0,131000000.0,131000000.0,0.0,0.0,0.057999999999999996,915000000.0,171000000.0,635000000.0,0.0,11.517000000000001,,,1408000000.0,0.0,114.3,,,1445000000.0,131000000.0,2246000000.0,2246000000.0,290000000.0,,,,,0.0,625000000.0,1.0,452000000.0,439000000.0,440000000.0,5.1160000000000005,7107000000.0,0.0,71000000.0,113000000.0,16.189,2915000000.0
df.loc[df["marketcap"] > 100000000000]["marketcap"].index
df.drop(df.loc[df["marketcap"] > 100000000000]["marketcap"].index, inplace=True)