Próbuję użyć Pythona do wczytania wielu ramek danych do analizy mojej dysertacji [duplikat]

Dec 19 2020

Więc mam wielu uczestników z 3 próbami każdy. Wszystkie moje pliki mają tę samą konwencję nazewnictwa, więc użyłem pętli for, aby szybko odczytać wszystkie pliki. Muszę teraz przypisać każdy plik do jego własnej ramki danych, która jest łatwa do odczytania i umożliwia pracę nad jak największą liczbą naraz.

obecnie mam

for p in range(participants):
    for t in range(tests):
       filename = 'P'+str(p+1)+'S'+str(t+1)+'.csv'

Teraz muszę przypisać pliki do ramki danych, która miałaby nazwę df (p + 1) (t + 1), tj. Df11, df12, df13, df21, ... df153

Będę musiał uzyskać dostęp do wielu ramek danych na raz i nie wiem, jak uzyskać wszystkie te ramki danych w efektywny sposób.

Byłbym wdzięczny, gdyby ktoś mógł mi powiedzieć, jak to osiągnąć

Odpowiedzi

DerekO Dec 19 2020 at 12:57

Tworzenie zmiennych zmiennych to zły pomysł w Pythonie . Zamiast tego listy i słowniki zapewniają to samo, więc zalecałbym przechowywanie ramek DataFrames w słowniku z posiadanym schematem nazewnictwa:

df_dict = {}
for p in range(participants):
    for t in range(tests):
        key_name = 'df' + str(p+1) + str(t+1)
        df_dict[key_name] = pd.read_csv('P'+str(p+1)+'S'+str(t+1)+'.csv')

Następnie możesz uzyskać dostęp do każdej ramki DataFrame za pomocą klucza słownika: df_dict['df11']