#python #pandas
#python #pandas
Вопрос:
У меня есть словарь фреймов данных:
two_season_bucket_suffixes = {'two_season_bucket_year1_racer_bio':two_season_bucket_year1_racer_bio,
'two_season_bucket_year1_spring_rate':two_season_bucket_year1_spring_rate,
'two_season_bucket_year1_neaps_rate':two_season_bucket_year1_neaps_rate,
'two_season_bucket_year1_spring_raw':two_season_bucket_year1_spring_raw,
'two_season_bucket_year1_neap_raw':two_season_bucket_year1_neap_raw,
'two_season_bucket_year1_opposing_team':two_season_bucket_year1_opposing_team,
'two_season_bucket_year1_opposing_team_distribution':two_season_bucket_year1_opposing_team_distribution,
'two_season_bucket_year1_stern_score':two_season_bucket_year1_stern_score,
'two_season_bucket_year1_bow_score':two_season_bucket_year1_bow_score,
'two_season_bucket_year1_team_score':two_season_bucket_year1_team_score,
'two_season_bucket_year2_racer_bio':two_season_bucket_year2_racer_bio,
'two_season_bucket_year2_spring_rate':two_season_bucket_year2_spring_rate,
'two_season_bucket_year2_neaps_rate':two_season_bucket_year2_neaps_rate,
'two_season_bucket_year2_spring_raw':two_season_bucket_year2_spring_raw,
'two_season_bucket_year2_neap_raw':two_season_bucket_year2_neap_raw,
'two_season_bucket_year2_opposing_team':two_season_bucket_year2_opposing_team,
'two_season_bucket_year2_opposing_team_distribution':two_season_bucket_year2_opposing_team_distribution,
'two_season_bucket_year2_stern_score':two_season_bucket_year2_stern_score,
'two_season_bucket_year2_bow_score':two_season_bucket_year2_bow_score,
'two_season_bucket_year2_team_score':two_season_bucket_year2_team_score}
все они имеют разные столбцы, но все они имеют по крайней мере один столбец, который начинается со слова «предсказание»
Я хотел бы создать новый фрейм данных из каждого столбца, который начинается с «предсказания»:
two_season_bucket_prediction= pd.DataFrame()
counter = 0
for key, val in two_season_bucket_suffixes.items():
if counter == 0:
two_season_bucket_prediction= val[val.columns[pd.Series(val.columns).str.startswith('prediction')]]
else:
two_season_bucket_prediction= two_season_bucket_prediction.join(val[val.columns[pd.Series(val.columns).str.startswith('prediction')]])
counter = 1
каждый раз, когда я просто получаю фрейм данных с одним столбцом с именем ‘prediction’, хотя я уверен, что ни один столбец не называется только prediction
Ответ №1:
Вы увеличиваете счетчик там, где вы никогда не достигаете:
two_season_bucket_prediction= pd.DataFrame()
counter = 0
for key, val in two_season_bucket_suffixes.items():
if counter == 0:
two_season_bucket_prediction= val[val.columns[pd.Series(val.columns).str.startswith('prediction')]]
else:
two_season_bucket_prediction= two_season_bucket_prediction.join(val[val.columns[pd.Series(val.columns).str.startswith('prediction')]])
counter = 1
Комментарии:
1. хорошо, поэтому я переместил счетчик на тот же отступ, что и if, но в итоге у меня все равно остался только один столбец в новом фрейме данных
2. Ваших исходных данных недостаточно, чтобы я мог помочь. Пожалуйста, обновите свой вопрос на. доступный для выполнения образец, чтобы я мог вам помочь.