如果我使用下面的代码,它将保留具有NaNs的列(请参阅附件中的图片)。我还有其他类似的专栏。有没有可能保留第二个而不是第一个?
data_final2 = data_final.loc[:, ~data_final.columns.duplicated()]

发布于 2018-11-05 05:48:22
方法1:删除包含NaN的列
如果您只需要针对此特定情况进行修复,并且您知道所需的列没有NaNs:
data_final2 = data_final.dropna(axis=1)方法2:用唯一的名称覆盖列标签,然后选择所需的cols
data_final.columns = ['Site_nan', 'Site', 'Dimensions_nan', 'Dimensions']
data_final2 = data_final[['Site', 'Dimensions']].copy()发布于 2018-11-05 06:42:23
groupby列并选择空值,这将忽略first。
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 3https://stackoverflow.com/questions/53145511
复制相似问题