为什么这个try except在重命名pandas列时不起作用?

hof1towb  于 2023-08-01  发布在  其他
关注(0)|答案(1)|浏览(99)

我正在尝试重命名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


因此,您可以看到代码永远不会转到,除非节和列名保持不变。

x4shl7ld

x4shl7ld1#

因为rename方法的默认行为是“忽略”错误(至少对于当前的pandals版本)。因此,尽管在尝试中没有找到该列,但不会引发异常。试试这个吧。

df_data=df_data.rename(columns={'Deep_Res_ohmm':'new_name'}, errors='raise')

字符串
下面是有关rename方法的文档。https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rename.html
可能有更好的方法来实现这一点,但我想解决您的具体问题,即为什么尝试没有引发异常。

相关问题