col A
28
45
67
A
67
C
D
78
89
Я хочу удалить строку, содержащую символы (т.е.) A, B, C... (может быть любой из A-Z) Мне удалось удалить A, B, C, используя приведенный ниже код.
new_df = df[(df['colA'] != 'A') & (df['colA'] != 'B') & (df['colA'] != 'C')]
Я чувствую, что это жестко закодировано, поскольку я знаю, что столбец содержит A, B, C. Какой-то другой столбец может содержать F, G или что-то в этом роде. Любой лучший подход к удалению символов из столбца.
Примечание. colA имеет тип объекта в фрейме данных.
Вывод должен быть столбцом, содержащим только числа, а тип данных должен быть изменен с объекта на int.
Попробуйте с isalpha
, чтобы числовое значение не возвращалось True
, тогда мы получим ~
df = df[~df.colA.str.isalpha()]
Out[953]:
colA
0 28
1 45
2 67
4 67
7 78
8 89
Способ обновления 2
df = df[pd.to_numeric(df['col A'],errors='coerce').notnull()]
Out[73]:
colA
0 28
1 45
2 67
4 67
7 78
8 89
@flashspeedster проверь обновление
В имени столбца есть пробел между двумя словами (столбец A), поэтому я не уверен, работает ли df.colName. Вы можете помочь в этом?
@flashspeedster вы можете использовать df[["col A"]]
для такого случая
@flashspeedster снова обновляется
Упомянутое вами решение не работает. Сообщение об ошибке -TypeError: неверный тип операнда для унарного ~: 'float'