Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 大型python数据帧上的快速数据处理_Python 2.7_Pandas_Pattern Matching_Dataframe_Bigdata - Fatal编程技术网

Python 2.7 大型python数据帧上的快速数据处理

Python 2.7 大型python数据帧上的快速数据处理,python-2.7,pandas,pattern-matching,dataframe,bigdata,Python 2.7,Pandas,Pattern Matching,Dataframe,Bigdata,我有一个巨大的数据框,包含4列900万行。例如,我的MainDataframe具有: NY_resitor1 NY_resitor2 SF_type SF_resitor2 45 36 Resis 40 47 36 curr 34 .

我有一个巨大的数据框,包含4列900万行。例如,我的MainDataframe具有:

NY_resitor1 NY_resitor2    SF_type        SF_resitor2 
     45           36          Resis          40                  
     47           36          curr           34                    
      .            .           .              .                   
     49           39          curr           39 
     45           11          curr           12 
     12           20          Resis          45
我想有两个数据帧,并根据SF_类型(即Resis和curr)将它们保存为csv文件。 这是我写的

 FullDataframe=pd.read_csv("hdhhdhd.csv")
 resis=pd.DataFrame()
 curr=pd.DataFrame()  

 for i in range(len(FullDataframe["SF_type"].values)):
     if Resis in FullDataframe["SF_type"].values[i]:
          resis.loc[i]=FullDataframe[["NY_resitor1", "NY_resitor2",  "SF_type","SF_resitor2"]].values[i]

     elif curr in  in FullDataframe["SF_type"].values[i]:
          curr.loc[i]=FullDataframe[["NY_resitor1", "NY_resitor2",  "SF_type","SF_resitor2"]].values[i]

 resis.to_csv("jjsjjjsjs.csv")
 curr.to_csv("jjsj554js.csv")

这是我写的,在过去的一周里我一直在运行它,但它还没有完成。有没有更好更快的方法来实现这一点?

使用pandas过滤器比使用for循环会更幸运。为了遵守惯例,我将调用您的
FullDataFrame
df

resis = df[df.SF_type == 'Resis']
curr = df[df.SF_type == 'curr']
然后运行以下命令:

resis.to_csv("jjsjjjsjs.csv")
curr.to_csv("jjsj554js.csv")

我不确定您的索引是什么,但如果您不只是使用默认的熊猫索引(即0、1、2、3等),那么您将通过对索引进行排序(
.sort\u index()
方法)看到性能提升。

当我这样做时,我的两个帧是空的。我的df.SF_类型是object类型;因此,当我使用==时,它返回false,如果将它转换为等式语句的
str
,会怎么样?比如
resis=df[df.SF\u type.astype(str)='resis']