Python 从df.columns中删除非连续重复项

Python 从df.columns中删除非连续重复项,python,pandas,duplicates,Python,Pandas,Duplicates,我试图从列名中删除非连续重复的单词和数字 例如,我目前有df[“60小时以上的周数60”],我想获得df[“60小时以上的周数”] 我测试了 df.columns = df.columns.str.split().apply(lambda x:OrderedDict.fromkeys(x).keys()).str.join(' ') 跟随 但我得到了以下错误: ------------------------------------------------------------------

我试图从列名中删除非连续重复的单词和数字

例如,我目前有df[“60小时以上的周数60”],我想获得df[“60小时以上的周数”]

我测试了

df.columns = df.columns.str.split().apply(lambda x:OrderedDict.fromkeys(x).keys()).str.join(' ')
跟随

但我得到了以下错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-85-1078b4f07191> in <module>()
     31     df_t.columns = df_t.columns.str.replace(r"."," ")
     32     df_t.columns = df_t.columns.str.strip()
---> 33     df_t.columns = df_t.columns.str.split().apply(lambda x:OrderedDict.fromkeys(x).keys()).str.join(' ')
     34 
     35 #     df_t.columns = df_t.columns.str.replace(r"\(.*\)","")

AttributeError: 'Index' object has no attribute 'apply'
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在()
31 df_t.columns=df_t.columns.str.replace(r“.”)
32 df_t.columns=df_t.columns.str.strip()
--->33 df_t.columns=df_t.columns.str.split().apply(lambda x:OrderedDict.fromkeys(x.keys()).str.join(“”)
34
35#df#t.columns=df#u t.columns.str.replace(r“\(.*)”,“”)
AttributeError:“索引”对象没有属性“应用”

建议?

使用列表理解或
map

df = pd.DataFrame(columns=['What is is name name name'])

from collections import OrderedDict
df.columns = [' '.join(OrderedDict.fromkeys(x).keys()) for x in df.columns.str.split()]
print (df)
Empty DataFrame
Columns: [What is name]
Index: []


是否有可能根据您的建议,它实际上删除了在列名中而不是列名中重复出现的单词?”Workers是一个出现在大多数列名中的术语,现在我找不到了anymore@FilippoSebastio-不确定是否理解,是否可以更改
df=pd.DataFrame(列=['What is name','another col'])
如预期输出所需?
df.columns = (df.columns.str.split()
                .map(lambda x:OrderedDict.fromkeys(x).keys())
                .str.join(' '))