我在dataframe中有一个列,其中包含用于机场的IATA_Codes (缩写)(例如: LAX、SFO、.)但是,如果我对列值进行更多的分析(column.unique()),就会发现其中也有4位数字。如何过滤列,使我的数据报只包含包含真正机场代码的行?
我的想法是过滤长度(机场代码长度总是3,而数字长度总是4),但是我不知道如何实现这个想法。
array(['LFT', 'HYS', 'ELP', 'DVL', 'ISP', 'BUR', 'DAB', 'DAY', 'GRK',
'GJT', 'BMI', 'LBE', 'ASE', 'RKS', 'GUM', 'TVC', 'ALO', 'IMT',
...
10170, 11577, 14709, 14711, 12255, 10165, 10918, 15401, 13970,
15497, 12265, 14254, 10581, 12016, 11503, 13459, 14222, 14025,
'10333', '14222', '14025', '13502', '15497', '12265'], dtype=object)发布于 2022-05-07 19:36:27
您可以使用df.columns.str.len获取长度,并将其传递到df.loc的第二个索引器位置。
df = df.loc[:, df.columns.astype(str).str.len() == 3]发布于 2022-05-07 19:48:21
另一种可能是使用lambda表达式:
df[df['IATA_Codes'].apply(lambda x : len(str(x))==3)]['IATA_Codes'].unique()https://stackoverflow.com/questions/72155816
复制相似问题