我正在尝试重命名pandas中的一个列,并使用try,除非列名不同。
下面是使用try和except之前的数据。
df_data=pd.read_csv(file_GG,sep='\t')
print('data_early')
print(df_data)
df_data=df_data.rename(columns={'MD':'WellMD'})
df_data
data_early
MD Shallow_Res_ohmm
0 1031.7 8.14
1 1031.8 10.04
2 1031.9 10.11
WellMD Shallow_Res_ohmm
0 1031.7 8.14
1 1031.8 10.04
2 1031.9 10.11
3 1032.0 7.61
4 1032.1 5.12
字符串
现在我想更改另一个可能有不同名称的列名,所以我使用try和except
try:
df_data=df_data.rename(columns={'Deep_Res_ohmm':'new_name'})
except:
print('testing different column name')
df_data=df_data.rename(columns={'Shallow_Res_ohmm':'new_name'})
print('df_after')
print(df_data)
df_after
WellMD Shallow_Res_ohmm
0 1031.7 8.14
1 1031.8 10.04
2 1031.9 10.11
型
因此,您可以看到代码永远不会转到,除非节和列名保持不变。
1条答案
按热度按时间x4shl7ld1#
因为rename方法的默认行为是“忽略”错误(至少对于当前的pandals版本)。因此,尽管在尝试中没有找到该列,但不会引发异常。试试这个吧。
字符串
下面是有关rename方法的文档。https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rename.html
可能有更好的方法来实现这一点,但我想解决您的具体问题,即为什么尝试没有引发异常。