Pandas 从dataframe中的列标题中删除双引号

Pandas 从dataframe中的列标题中删除双引号,pandas,dataframe,double-quotes,columnheader,Pandas,Dataframe,Double Quotes,Columnheader,我试图理解下面这行代码背后的直觉 我知道它正在从数据帧中的列标题中删除双引号,尽管有人能帮助我理解它是如何做到的吗 df.columns = [col[1:-1] for col in df.columns] 感谢df.columns=…是将右侧列表分配给列的行的一部分 然后右边是列表理解,这意味着它可以像for循环一样理解 然后,在python中,字符串是一个字符数组对于列中的列意味着迭代列列表中的每个字符串。每个列都是一个数组。如果该字符串有引号,那么它看起来像“xxxx”。所以数组的第一

我试图理解下面这行代码背后的直觉

我知道它正在从数据帧中的列标题中删除双引号,尽管有人能帮助我理解它是如何做到的吗

df.columns = [col[1:-1] for col in df.columns]

感谢

df.columns=…
是将右侧列表分配给列的行的一部分

然后右边是列表理解,这意味着它可以像for循环一样理解

然后,在python中,字符串是一个字符数组
对于列中的列
意味着迭代列列表中的每个字符串。每个
列都是一个数组。如果该字符串有引号,那么它看起来像
“xxxx”
。所以数组的第一个和最后一个元素是引号

col[1:-1]
是将数组从第二个元素切片到最后一个元素之前的元素的方法


因此,当您将所有这些内容放在一起时,您最终会删除引号。

这是将
列名中的第二个索引移到每列的最后第二个索引

示例:-

如果
列名
字符串的大小小于3,则它会将空字符串作为
列名

示例-


df.colunms返回列名的
pd.Series
,然后使用列表理解,您可以迭代各个列名,并使用索引切片从列中的第二个字符到该列名中的倒数第二个字符进行选择。