python pandas在使用后如何组合切片

时间:2018-09-22 11:07:00

标签: python pandas dataframe slice

我有一个数据框,有两列和5000行。 喜欢:    乙 0 1 4 1 5 5 2 3 2 3 9 7 ... 5000 8 3

我想每100步分离一次数据框。所以我得到了50片。 对于培训,我接下来要做的是将这50个切片再次组合成一个新的数据框或数组,或者将我可以将数据输出到csv文件中的所有内容。

我使用以下命令将数据帧分成多个切片:

#use stemming
import nltk 
#nltk.data.load('stopwords')
#import sys
from nltk .stem.snowball import SnowballStemmer
stemmer = SnowballStemmer("english", ignore_stopwords=True)
class StemmedCountVectorizer(CountVectorizer):
        def build_analyzer(self):
            analyzer = super(StemmedCountVectorizer, self).build_analyzer()
            return lambda doc: ([stemmer.stem(w) for w in analyzer(doc)])
    stemmed_count_vect = StemmedCountVectorizer(stop_words='english')

    text_mnb_stemmed = Pipeline([('vect', stemmed_count_vect),
    ...                      ('tfidf', TfidfTransformer()),
    ...                      ('mnb', MultinomialNB(fit_prior=False)),
    ... ])
    text_mnb_stemmed = text_mnb_stemmed.fit(X_trainset, Y_trainset)
    predicted_mnb_stemmed = text_mnb_stemmed.predict(X_testset)

for i in predicted_mnb_stemmed:
    print(i)

完成上述命令后,如何合并切片以进行下一步? 任何意见将是有益的。非常感谢。

1 个答案:

答案 0 :(得分:0)

如果您想要50个csv文件:

for i in range(0,len(df['A']),100):
    df_100=df[i:i+100]
    df_100.to_csv("file"+str(i)+".csv", index=False)

如果要对切片后的数据框进行某些处理,可以将它们存储为字典:

dict_of_df = {}
for i in range(0,len(df['A']),100):
    dict_of_df["slice{}".format(i)]=df[i:i+100]

因此,您将通过dict_of_df[key]访问切片的数据帧,其中key = "slice0", "slice100", "slice200", ...

当您处理完这些切片的数据框并想要将它们组合时,

df_final = pd.DataFrame()
for key, values in dict_of_df.items():
    df_final = df_final.append(dict_of_df[key])

检查df_final排序是否正确,然后:

df_final = df_final.sort_index()

然后导出回csv:df_final.to_csv("filename.csv")