Это похоже на простую задачу, но мне очень сложно удалить «» из всего моего фрейма данных и вернуть числовые значения в каждом столбце, включая числа, которые не имели ''. Dateframe включает в себя сотни более столбцов и выглядит короче:Удаление специальных символов в dataframe pandas
Time A1 A2
2.0002546296 1499 1592
2.0006712963 1252 1459
2.0902546296 1731 2223
2.0906828704 1691 1904
2.1742245370 2364 3121
2.1764699074 2096 1942
2.7654050926 *7639* *8196*
2.7658564815 *7088* *7542*
2.9048958333 *8736* *8459*
2.9053125000 *7778* *7704*
2.9807175926 *6612* *6593*
3.0585763889 *8520* *9122*
я не написал его перебрать каждый столбец в ДФ, но пока, насколько первая колонка идет, я пришел с этим
df['A1'].str.replace('*','').astype(float)
, который дает
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 NaN
9 NaN
10 NaN
11 NaN
12 NaN
13 NaN
14 NaN
15 NaN
16 NaN
17 NaN
18 NaN
19 7639.0
20 7088.0
21 8736.0
22 7778.0
23 6612.0
24 8520.0
есть очень простой способ, чтобы просто удалить «*» в dataframe в панд?
Добавьте 'df = df.astype (float)' после замены, и у вас его есть. Я бы пропустил 'inplace' и просто выполнил' df = df.replace ('\ *', '', regex = True) .astype (float) 'и назвал его хорошим. – piRSquared
@piRSquared - это плохая практика, использующая 'inplace'. – shivsn
Нет. Просто предпочтение. В этом случае, когда вы использовали inplace, он не возвращался, позволяя цепочку. Без этого я смог подключить атеип (float) – piRSquared