我正在做这个人。在熊猫:
all_df = pd.DataFrame()
all_df[self.FAO_code] = per_df[self.FAO_code]
all_df[self.ISO_code] = per_df[self.ISO_code]
all_df[self.cft_id] = per_df[self.cft_id]
all_df[self.cft_type] = per_df[self.cft_type]
在某些情况下,per_df中缺少列self.cft_id。在这种情况下,all_df[self.cft_id] = per_df[self.cft_id]
会导致错误。解决此问题的最佳方法是什么,即处理列缺失的情况?
pass
还有其他方式吗?
修改
per_df的一部分:
ISO Country_FAO funct_type Y1961 Y1962 Y1963 Y1964
0 4 Albania C3annual 3058729 3183956 3214308 3233208
1 4 Albania C3perennial 99999 100000 100000 105000
2 4 Albania C4annual 523500 524500 525500 531500
3 4 Albania C4perennial 1800 1800 1800 1800
4 4 Albania N-fixing 20500 21000 22500 22500
答案 0 :(得分:1)
你也可以这样做:
for col in [self.FAO_code, ..., self.cft_type]:
if col in per_df.columns:
all_df[col] = per_df.loc[:, col]
答案 1 :(得分:1)
您可以使用filter
方法。它忽略了不存在的列:
all_df = per_df.filter([self.FAO_code, self.ISO_code, self.cft_id, self.cft_type])