我有一个数据框,有两列和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)
完成上述命令后,如何合并切片以进行下一步? 任何意见将是有益的。非常感谢。
答案 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")