#python #pandas #pickle
#python #панды #pickle
Вопрос:
У меня есть каталог, содержащий около 1700 файлов pickle, каждый файл — это все сообщения пользователя в Твиттере, я хочу преобразовать его в папку с файлами CSV, чтобы каждое имя файла CSV было именем файла pickle, и каждая строка содержала один твит пользователя … после этого я хочу просто20 лучших CSV с большим количеством примеров, чем у других… как я могу это сделать?
# khabarlist = open_file_linebyline(pkl_path)
def open_dir_in_dict(input_path):
files = os.scandir(input_path)
my_dict = {}
for file in files:
# if len(file.name.split()) > 1:
# continue
# if file.split('.')[-1] != "pkl":
with open(file, 'r', encoding='utf8') as f:
items = [i.strip() for i in f.read().split(",")]
my_dict[file.replace(".pkl", "")] = items
df = pd.DataFrame(my_dict)
df.to_excel(file.replace(".pkl", "") "xlsx")
open_dir_in_dict("Raw/")
Я написал для него пример кода, но он не сработал…
Комментарии:
1. Я нашел ответ…
Ответ №1:
def open_dir_in_dict(input_path):
files = os.scandir(input_path)
my_dict = {}
for file in files:
if len(file.name.split()) > 1:
continue
if file.split('.')[-1] != "pkl":
with open(file, 'r', encoding='utf-8', errors='replace') as f:
print(f.readlines())
items = [i.strip() for i in f.read().split(",")] # encode('utf-8').strip()
my_dict[file.replace(".pkl", "")] = items
df = pd.DataFrame(my_dict)
df.to_excel(file.replace(".pkl", "") "xlsx")
# open_dir_in_dict("Raw/")
Ответ №2:
и лучший ответ…
import os
import pandas as pd
import regex as re
data_path = "/content/drive/My Drive/twint/Data/pkl/Data/"
for path in os.listdir(data_path):
my_tweets = []
df = pd.read_pickle(data_path path)
for tweet in df.tweet:
url = re.findall(r"httpS ", tweet)
if url == []:
my_tweets.append(tweet)
new_df = pd.DataFrame({"tweets": my_tweets, "author": path.replace(".pkl", "")}) # path[:-4]
new_df.to_csv("/content/drive/My Drive/twint/final.csv", index=False, mode="a", )