Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将元组设置为表中的列名_Python_Pandas_Dataframe_Tuples - Fatal编程技术网

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()