python - 通过使用循环对字典中的所有数据框进行子集化来创建新数据框
问题描述
我有一个数据框字典:
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}
它们都有不同的列,但它们都至少有一列以单词“prediction”开头
我想从以“预测”开头的每一列中创建一个新的数据框:
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
每次我最终得到一个数据框,其中有一列名为“预测”,即使我确信没有一列只命名为预测
解决方案
您正在增加您永远无法到达的柜台:
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
推荐阅读
- php - 对 tFPDF 的阿拉伯语支持(基于 fpdf)
- vb.net - VB.Net AES 加密值与 http://extranet.cryptomathic.com/aescalc/index 不匹配
- c++ - C++ WINAPI 在挂载的 VHD 上创建多个分区
- c++ - 使用所有测试用例将十进制数转换为二进制数
- python - 虽然循环没有中断?
- typescript - 泛型的自动类型解析
- spring-boot - 为什么我的网站可用于 2 个 URL:当我使用 http 和 https 搜索时?
- json - 如何从json对象数组中获取值并以角度添加到另一个数组
- laravel - Laravel URL::route() 不返回绝对路径
- css - 显示我的移动优先设计时出现问题