我使用以下熊猫表情
df = df[df.columns[~df.columns.str.contains('Unnamed:')]]
删除包含未命名的列。我从这里拿到的 Remove Unnamed columns in pandas dataframe
由于某些原因,在某些情况下,此行会导致列爆炸 例如
df shape in (2000, 1451)
after dropping Unnamed (2000, 3851)
尤其是在某些列具有相同名称(例如重复项)的情况下,似乎会引起爆炸。
任何人都知道为什么会发生这种情况以及如何避免这种情况吗?
如何在允许重复名称的情况下删除具有某些子字符串的列?谢谢
答案 0 :(得分:3)
当您显然有重复的名称时,您将对列的名称进行切片。您想使用loc
和布尔型掩码进行切片。
df = df.loc[:, ~df.columns.str.contains('Unnamed:')]]
答案 1 :(得分:1)
我建议解决重复列问题
s=df.columns.to_series()
s1=s.groupby(s).cumcount().astype(str)
newc=s+s1.mask(s1=='0','')
Out[717]:
a a
a a1
b b
dtype: object
df.columns=newc