#python #loops #save
#python #циклы #Сохранить
Вопрос:
Мне понадобилась бы помощь в сохранении значений, которые повторяет мой цикл for.
С помощью этого скрипта я создаю свой csv так, как мне это нужно, но нет информации о том, какое значение w и c имеет в каждой строке. Как я могу добавить эту информацию еще в два столбца?
import pandas as pd
df = pd.read_csv(...)
country_list = df.Country.unique()
wave_list = df.Wave.unique()
dn = pd.DataFrame()
for w in wave_list:
print ("Wave is: " str(w))
wave_select =df[df["Wave"] == w] # Select Rows for Waves
for c in country_list:
print ("Country is: " str(c))
country_select = df[df["Country"] == c] # Select Rows for Countries
out = country_select["Sea"].value_counts(normalize=True)*100 # Calculate Percentage
print (out)
dn = dn.append(out)
dn.to_csv (...)
Я был бы очень благодарен за помощь.
Комментарии:
1. Пожалуйста, добавьте несколько примеров входных данных и добавьте ожидаемый результат, чтобы вам было легче помочь
Ответ №1:
Перед циклом: dn = pd.DataFrame(columns=['wave','country','out'])
Внутри внутреннего цикла вместо dn = dn.append(out)
:
dn = dn.append({'wave':w,'country':c,'out':out}, ignore_index=True)
Комментарии:
1. Должен быть ожидаемый ответ
2. Спасибо, это именно то, что я искал! 🙂
3. Когда я смотрю на сохраненный csv, я все еще вижу, что что-то не так. Сохраняется только последний набор вычислений. У меня одинаковые результаты для всех волн.
4. Внутренний цикл выполняет точно такие же вычисления для каждой волны. Возможно, вам следует использовать
wave_select
во внутреннем цикле.