向列名添加'.1'后缀的Pandas

k4ymrczo  于 2023-03-28  发布在  其他
关注(0)|答案(2)|浏览(154)

我有一个Excel工作簿,在同一张工作表上有相同结构的表格。我做了一个循环来读取它们:

for usecols in['A:L','N:Y']:
    df = pd.read_excel(r"Frequency_CI_extracted.xlsx", 
                       usecols=usecols, skiprows=3, 
                       sheet_name = 'Quantiles_CI_inches')

第一次迭代的结果数据框(即usecols="A:L")返回一个带有excel工作簿中标题的数据框。当循环进行到第二次迭代时,结果数据框的每个列名都有一个.1后缀。


有人能解释这种行为吗?

pd.__version__
Out[9]: '1.0.3'
qyuhtwio

qyuhtwio1#

当 Dataframe 中有两个相同的列名时,就会发生这种情况。

z2acfund

z2acfund2#

在我的代码中,当我在小写版本之后添加了一个大写版本的列名,然后强制所有列名都小写时,就发生了这种情况。

df.columns = ['this', 'that', 'thethird']
df['theThird'] = 99
df.columns = df.columns.str.lower()

df.columns
给予
['this',' that ',' thethird','thethird.1']
检查在另一个函数中是否发生了类似这样的列名调整,或者在阅读列名之间是否调用了类似这样的列名调整

相关问题