Python 将元组设置为表中的列名
我正在尝试将列名称设置为元组。 很少注意:列名已经是一个元组,我正试图用另一个元组替换它。 我尝试了这个Python 将元组设置为表中的列名,python,pandas,dataframe,tuples,Python,Pandas,Dataframe,Tuples,我正在尝试将列名称设置为元组。 很少注意:列名已经是一个元组,我正试图用另一个元组替换它。 我尝试了这个tab.rename(columns={valeur[0]:cle},inplace=True) “cle”是我的新元组(6,9),“valeur[0]”是列名(7.25,7.35) 我得到了一个错误:“名称应该是类似于多索引的列表” 谢谢:)这是一个已知的问题: 主要开发商的评论: 您可以这样做,但是使用元组作为索引是非常尴尬的,而且几乎不可能 支持。这些都是更自然的表现(和表现) 作为多索
tab.rename(columns={valeur[0]:cle},inplace=True)
“cle”是我的新元组(6,9),“valeur[0]”是列名(7.25,7.35)
我得到了一个错误:“名称应该是类似于多索引的列表”
谢谢:)这是一个已知的问题:
主要开发商的评论:
您可以这样做,但是使用元组作为索引是非常尴尬的,而且几乎不可能
支持。这些都是更自然的表现(和表现)
作为多索引。我从来没有见过这样一个案例,它实际上是一个
好主意
该线程中建议的解决方案建议使用tupleize\u cols=False
:
tab = pd.DataFrame([[1], [2], [3]], columns=[(7.25, 7.35)])
valeur = [(7.25, 7.35)]
cle = (6, 9)
tab.columns = pd.Index([i if i != valeur[0] else cle for i in tab],
tupleize_cols=False)
print(tab)
(6, 9)
0 1
1 2
2 3
这是一个已知问题:
主要开发商的评论:
您可以这样做,但是使用元组作为索引是非常尴尬的,而且几乎不可能
支持。这些都是更自然的表现(和表现)
作为多索引。我从来没有见过这样一个案例,它实际上是一个
好主意
该线程中建议的解决方案建议使用tupleize\u cols=False
:
tab = pd.DataFrame([[1], [2], [3]], columns=[(7.25, 7.35)])
valeur = [(7.25, 7.35)]
cle = (6, 9)
tab.columns = pd.Index([i if i != valeur[0] else cle for i in tab],
tupleize_cols=False)
print(tab)
(6, 9)
0 1
1 2
2 3
您可以这样做:
import pandas as pd
df = pd.DataFrame([[0, 0], [0, 0], [1, 1]], columns=[(7.25, 7.35), (7.35, 7.5)])
new_cols = df.columns.values.copy()
new_cols[0] = (6, 9)
df.columns = new_cols
print(df)
输出:
(6, 9) (7.35, 7.5)
0 0 0
1 0 0
2 1 1
您可以这样做:
import pandas as pd
df = pd.DataFrame([[0, 0], [0, 0], [1, 1]], columns=[(7.25, 7.35), (7.35, 7.5)])
new_cols = df.columns.values.copy()
new_cols[0] = (6, 9)
df.columns = new_cols
print(df)
输出:
(6, 9) (7.35, 7.5)
0 0 0
1 0 0
2 1 1
注意:仅当数据帧包含数据时,才会观察到此问题。空数据框与提供的代码配合使用效果良好。请阅读。另外,请避免使用文本图像。请注意,只有在数据框包含数据时才会出现此问题。空数据框与提供的代码配合使用效果良好。请阅读。此外,请避免使用文本图像。此外,可能对熊猫有更深入了解的人会评论直接通过
修改和索引值是否实际有效。我没有找到任何与之相反的引用,所以我假设是这样。您不应该直接修改值。我发现它会以一种疯狂的方式引发问题,除非你写下《熊猫》的来源,否则你永远无法想象这是可能的。副本可以+1。@jpp感谢您提供的信息,我已经将其改为使用副本。或者,df.columns=[(6,9)]+df.columns[1:][.tolist()
此外,也许对熊猫有更深入了解的人可能会评论直接通过.values
修改和索引是否实际有效。我没有找到任何与之相反的引用,所以我假设是这样。您不应该直接修改值。我发现它会以一种疯狂的方式引发问题,除非你写下《熊猫》的来源,否则你永远无法想象这是可能的。副本可以+1。@jpp谢谢您提供的信息,我已将其改为使用副本。或者df.columns=[(6,9)]+df.columns[1:][.tolist()