gpt4 book ai didi

python - 自动重命名列以确保它们是唯一的

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:14 24 4
gpt4 key购买 nike

我将电子表格提取到名为 df 的 Python DataFrame 中。

让我们举个例子:

df=pd.DataFrame({'a': np.random.rand(10), 'b': np.random.rand(10)})
df.columns=['a','a']

a a
0 0.973858 0.036459
1 0.835112 0.947461
2 0.520322 0.593110
3 0.480624 0.047711
4 0.643448 0.104433
5 0.961639 0.840359
6 0.848124 0.437380
7 0.579651 0.257770
8 0.919173 0.785614
9 0.505613 0.362737

当我运行 df.columns.is_unique 时,我得到了 False

我想自动将列“a”重命名为“a_2”(或类似名称)

我不期望像 df.columns=['a','a_2'] 这样的解决方案

我正在寻找可用于多个列的解决方案!

最佳答案

您可以手动唯一化列:

df_columns = ['a', 'b', 'a', 'a_2', 'a_2', 'a', 'a_2', 'a_2_2']

def uniquify(df_columns):
seen = set()

for item in df_columns:
fudge = 1
newitem = item

while newitem in seen:
fudge += 1
newitem = "{}_{}".format(item, fudge)

yield newitem
seen.add(newitem)

list(uniquify(df_columns))
#>>> ['a', 'b', 'a_2', 'a_2_2', 'a_2_3', 'a_3', 'a_2_4', 'a_2_2_2']

关于python - 自动重命名列以确保它们是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19071622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com