Pandas expression causes column explosion (or how to delete columns that contain substring in duplicate names environment)
我使用以下pandas表情
1 | df = df[df.columns[~df.columns.str.contains('Unnamed:')]] |
删除包含未命名的列。我从这里拿到的
删除pandas dataframe
中的未命名列
由于某些原因,在某些情况下,此行会导致列爆炸
例如
1 2 | df shape in (2000, 1451) after dropping Unnamed (2000, 3851) |
特别是在某些列具有相同名称(例如重复项)的情况下,似乎引起爆炸。
任何人都知道为什么会发生这种情况以及如何避免这种情况吗?
如何在允许重复名称的情况下删除具有某些子字符串的列?谢谢
当您显然具有重复的名称时,您将对列的名称进行切片。您要使用
1 | df = df.loc[:, ~df.columns.str.contains('Unnamed:')]] |
建议我解决重复列问题
1 2 3 4 5 6 7 8 9 | 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 |