删除重复的列

时间:2018-11-04 21:12:10

标签: python pandas

如果我使用下面的代码,它将保留具有NaN的列(请参阅所附图片)。我还有其他类似的专栏。是否可以保留第二个而不是第一个?

x='abcde'
result = [x[-i:]+x[:-i] for i in range(len(x))]
# result will be ['abcde', 'eabcd', 'deabc', 'cdeab', 'bcdea']

enter image description here

2 个答案:

答案 0 :(得分:2)

方法1:删除包含NaN的列

如果您只需要针对此特定情况的修复程序,并且知道所需的列中没有NaN

data_final2 = data_final.dropna(axis=1)

方法2:使用唯一名称覆盖列标签,然后选择所需的列名

data_final.columns = ['Site_nan', 'Site', 'Dimensions_nan', 'Dimensions']
data_final2 = data_final[['Site', 'Dimensions']].copy()

答案 1 :(得分:0)

groupby列,然后选择first值,该值将忽略Null。

df.groupby(df.columns, 1).first()

示例:

import pandas as pd
import numpy as np

df = pd.DataFrame({'0': [1,2,3], '1': [np.NaN]*3, '2': [np.NaN]*3, '3': ['1x1', '2x2', '3x3']})
df.columns= ['Size', 'Size', 'Dims', 'Dims']

#   Size  Size Dims Dims
#0     1   NaN  NaN  1x1
#1     2   NaN  NaN  2x2
#2     3   NaN  NaN  3x3


df.groupby(df.columns, 1).first()

#  Dims Size
#0  1x1    1
#1  2x2    2
#2  3x3    3