Przykład:

Column 1

[1, 3, " "]

[2, " ", 3]

etc.

Czy istnieje szybka lista, w której mogę zachować tylko liczby całkowite?

0
vstone 20 listopad 2019, 18:08
Dla wyjaśnienia, czy chcesz usunąć znaki spacji, czy zachować tylko int? Co chcesz, aby się stało, gdy masz int w ciągu (np. "3") ?
 – 
ds4940
20 listopad 2019, 18:12
df['Column 1] = [[x for x in i if isinstance(x, int)] for i in df['Column 1']] ..?
 – 
Chris A
20 listopad 2019, 18:14
Po prostu zachowaj intencje
 – 
vstone
20 listopad 2019, 19:30
To by nie zadziałało, ponieważ nie zagląda do każdej tablicy w każdym wierszu. To rozwiązanie zwróciło kolumnę z pustą tablicą w każdym wierszu
 – 
vstone
20 listopad 2019, 19:36

1 odpowiedź

Prawdopodobnie szukasz czegoś takiego:

a = [1, 3, " "]
b = [i for i in a if i != " "]

print(b) #> [1, 3]

Jeśli chcesz dołączyć inne spacje do usunięcia:

a = [1, 3, " ", ""]
b = [i for i in a if i not in (" ", "")]

Jeśli chcesz tylko dodać int (jeśli istnieją str, float itp., Ta metoda nie będzie generalizować):

a = [1, 3, " ", ""]
b = [i for i in a if isinstance(i, int)]
0
Felipe 20 listopad 2019, 18:14
Ponieważ moja struktura jest serią Dataframe, to podejście nie działa. Teoretycznie Twoje rozwiązanie ma sens, ale jak zmienić je na serię Dataframe? czyli seria to kolumna, w której każdy wiersz jest tablicą
 – 
vstone
20 listopad 2019, 19:33
Czy Twoja ramka danych ma tylko jedną kolumnę? Będziesz musiał użyć metody podobnej do odpowiedzi w tym pytaniu stackoverflow.com/questions/16476924/… aby iterować (zapętlać) każdy z elementów (które same są listą) i modyfikować je.
 – 
ds4940
21 listopad 2019, 13:19
Jeśli edytujesz swoją odpowiedź za pomocą kodu użytego do zainicjowania DataFrame (odpowiedz tutaj, jeśli to zrobiłeś), mogę wrócić i edytować te odpowiedzi, aby pomóc Ci dalej – w przeciwnym razie szczerze nie wiem, jak Ty masz konfigurację df.
 – 
Felipe
21 listopad 2019, 16:40