Wygląda na to, że funkcja pandy to_csv zezwala tylko na separatory/separatory pojedynczego znaku. Czy jest jakiś sposób, aby zezwolić na użycie ciągu znaków, np. "* | *" Lub "%%"?Użyj wielu ograniczników znaków w Pandonie Pythona to_csv
Odpowiedz
Rozwiązaniem byłoby wykorzystanie read_table zamiast read_csv:
1*|*2*|*3*|*4*|*5
12*|*12*|*13*|*14*|*15
21*|*22*|*23*|*24*|*25
Więc możemy przeczytać z:
pd.read_table('file.csv', header=None, sep='\*\|\*')
Jak pisze Padraic Cunningham w powyższym komentarzu, nie jest jasne, dlaczego tego chcesz. W Wiki entry for the CSV Spec stany o ograniczniki:
... oddzielone separatorami (zazwyczaj pojedynczego zastrzeżonego charakteru takich jak przecinek, średnik, lub karcie; czasami ogranicznik może zawierać opcjonalną spacji),
To nic dziwnego że zarówno csv
module jak i pandy nie obsługują tego, o co prosisz.
Jednakże, jeśli naprawdę chcesz to zrobić, jesteś w zasadzie za pomocą manipulacji ciągiem Pythona. Poniższy przykład pokazuje, jak zmienić ramkę danych na "csv" z $$
liniami oddzielającymi i %%
kolumnami oddzielającymi.
'$$'.join('%%'.join(str(r) for r in rec) for rec in df.to_records())
Oczywiście, nie trzeba przekształcać go w taki ciąg przed zapisaniem go do pliku.
Pandy robi teraz support multi character delimiters
import panda as pd
pd.read_csv(csv_file, sep="\*\|\*")
- 1. W Pandonie Pythona, jak używać jak R dplyr mutate_each
- 2. Jak zidentyfikować pierwsze wystąpienie duplikatów wierszy w Pandonie Pythona DataFrame
- 3. Podział łańcucha na słowa według wielu ograniczników
- 4. W Pandonie Pandy, operacja boolowska
- 5. TestFlight: Użyj wielu urządzeń
- 6. "Użyj" instrukcji php wielu?
- 7. Java string.split - według wielu znaków separatora
- 8. Python regex podzielił ciąg znaków przez jeden z dwóch ograniczników
- 9. npm Użyj 2 wersji Pythona
- 10. Zachowanie kolejności kolumn w metodzie pandy to_csv
- 11. Użyj kodu Pythona w C/C++
- 12. Zastępowanie wielu znaków w ciągu znaków
- 13. UŻYJ WIELU LEWEGO DOŁĄCZ DO
- 14. Użyj autofac w wielu rozwiązaniach projektowych
- 15. Tworzenie minimalnej liczby elementów Seria z dwóch innych serii w Pandonie Pythona
- 16. Jak zamienić i dodać element ramek danych przez inną ramkę danych w Pandonie Pythona?
- 17. Podział przez wielu znaków
- 18. Używanie ograniczników ASCII (29-31) w nowoczesnym programowaniu
- 19. Pandy to_csv() spowalniają zapisywanie dużej ramki danych
- 20. Powtarzanie wielu znaków regex
- 21. Użyj Pythona, aby utworzyć konsolę na żywo.
- 22. Matlab Podział strunowe wiele ograniczników
- 23. Usuwanie wielu typów znaków z ciągu znaków
- 24. Jak uniknąć "ograniczników" {{"i"}} "w szablonach Przejdź?
- 25. Wiele ograniczników w klasie skanera Java
- 26. Dodawanie różnych ograniczników w javascript toString() ..?
- 27. Jak używać znaków Unicode w ciągu Pythona
- 28. Jednoczesne uruchamianie wielu skryptów Pythona
- 29. Obsługa wielu wersji Pythona w twoim kodzie?
- 30. "wybierz" w wielu kolejkach wieloprocesorowych Pythona?
dlaczego chcesz więcej niż jednego? –
Ponieważ mam kilka kolumn z niesformatowanym tekstem, które mogą zawierać znaki takie jak "|", "\ t", "," itp. Prawdopodobieństwo, że ktoś napisze "%%" jest znacznie niższe ... – slaw