在Pandas中设置一个元组作为列名

0md85ypi  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(113)

我尝试将pandas列名设置为元组。注意:列名已经是一个元组,我尝试用另一个元组替换。enter image description here我尝试了这个tab.rename(columns = {valeur[0] : cle}, inplace = True ) 'cle'是我的新元组(6,9),'valeur[0]'是列名(7.25,7.35)。
我得到的错误:'名称应该是列表一样的多索引'

2fjabf4q

2fjabf4q1#

你可以这样做:

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

fcy6dtqo

fcy6dtqo2#

这是一个已知的问题:Option to suppress automatic conversion of tuples to MultiIndex
一位主要开发人员的评论:
你可以这样做,但是使用元组作为索引是非常尴尬的,几乎不受支持。这些更自然地表示(和性能)为多索引。我从来没有见过这样的情况,这是一个好主意。
该线程中提出的解决方案建议使用tupleize_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

字符串

相关问题