Zmieniasz wartość atrybutu warstwy CSV z tekstu na liczbę w QGIS?


28

Czytam w pliku CSV do połączenia z plikiem .shp.

Wszystkie zmienne, które są tylko liczbami, pojawiły się jako tekst.

Jak zmienić zmienne tekstowe na numeryczne w QGIS?

Odpowiedzi:


37

Kiedyś miałem to samo pytanie. Odpowiedź brzmi: umieść plik w tym samym folderze z końcowym csvt. Na przykład nazwa pliku to xyzdata.csv, jeśli dodajesz plik xyzdata.csvt

Ten możesz na przykład edytować za pomocą edytora. I w nim ustawiasz typ danych w ten sposób. „Integer”, „String”, „Integer”, „Integer”, „String”, „Real”

Liczba całkowita jest teraz zmienną dla pierwszej kolumny, ciąg znaków dla drugiej i tak dalej ... Upewnij się, że pliki mają takie same nazwy.

Edycja: w razie potrzeby także tutaj: http://underdark.wordpress.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/


Dziękuję bardzo1. Czy to prawda, że ​​wszystkie pliki CSV zostaną odczytane jako tekst? Może sobie to wyobrażałem, ale kiedy zaczynałem pracę z QGIS jakiś czas temu, połączyłem plik CSV, a liczby były liczbami. Wydaje się, że te informacje powinny znajdować się w instrukcji obsługi. (może mi tego brakowało)
HealthMaps,

Tak, to też było dziwne dla mnie. Ale jeśli masz tylko kilka kolumn, ta metoda jest łatwa do wykonania. Więc ... czy to naprawdę Ci się udało?
Shepherdjo,

Tak, działa idealnie! Uważaj na konfigurowanie pliku CSVT w programie Excel; dodatkowe znaki cudzysłowu zacinają się itp. Używam SAS lub R, aby tworzyć pliki, które chcę połączyć, więc tworzenie pliku CSVT wraz z plikiem CSV nie stanowi większego problemu. Wydaje się, że należy to naprawić. Kolejny GIS, którego używam, widzi cyfry w kolumnie CSV, wczytuje je jako liczby.
HealthMaps,

Znalazłem wtyczkę MMQGIS, która zmieni kolumnę z tekstu na float lub float na text. Działa tylko w przypadku pliku kształtu, a nie pliku połączonego lub importowanego pliku csv. Zobacz michaelminn.com/linux/mmqgis
HealthMaps

Dobrze to słyszeć. I dziękuję za podpowiedź dotyczącą wtyczki. Byłbym również wdzięczny, jeśli zaakceptujesz moją odpowiedź, prawda?
Shepherdjo

15

Zamiast mieszać się z plikiem wejściowym, próbując uzyskać doskonały obraz, po prostu użyj kalkulatora pola, aby przekonwertować tekst na liczbę / liczbę rzeczywistą. Zobacz przykłady poniżej:

Kalkulator polowy

Kalkulator polowy na numer

Kalkulator polowy na rzeczywisty

Tabela atrybutów po funkcji


Kiedy wprowadziłem plik CSV, nie mogłem go edytować. Przycisk edycji był wyszarzony. Jak mogę go edytować?
HealthMaps

Nie jestem pewien, czy możesz edytować plik CSV za pomocą qGIS. Myślę, że źle odczytałem twoje pytanie, ponieważ już zaimportowałeś dane csv do pliku kształtu .
nagytech

2
Zrobiłem link, .shp do pliku csv, który miał kolumny liczb, ale naprawdę był tekstem. Najwyraźniej nie można samodzielnie edytować pliku CSV ani powiązać go z plikiem SHP. SO Zapisałem połączony plik, a następnie ponownie go załadowałem i mogłem edytować pliki liczbowe w formacie liczb całkowitych, zgodnie z twoimi sugestiami. Wydaje się, że użycie pliku .csvt działa najlepiej, jeśli masz wiele kolumn tekstowych, które należy przekonwertować, a następnie użyć metody kalkulatora pola, jeśli nie ma ich tak wielu. Przydałaby się możliwość samodzielnego edytowania pliku CSV, niepowiązanego z niczym.
HealthMaps,

11

Zamiast ładować plik .csv za pomocą opcji Dodaj warstwę wektorową, użyj narzędzia Warstwa tekstu rozdzielanego. Spróbuje wykryć najbardziej odpowiedni typ danych dla każdej kolumny.

Więcej informacji znajduje się w podręczniku użytkownika QGIS .

wprowadź opis zdjęcia tutaj


Insta-fix! Dzięki
user94812,

5

MMQGis spowodował ten problem i, jak się okazuje, można go naprawić.

Po dołączeniu do danych Shapefile i CSV użyj narzędzia MMQGis Modify> Text to Float.

Jak zwykle pozostawia ślad niepotrzebnych pośrednich plików kształtów, ale co jeszcze jest nowe


1

W QGIS 3.x częstym źródłem błędów jest wybór niewłaściwego separatora dziesiętnego. Zaznacz lub odznacz pole „Separator dziesiętny to przecinek” przed załadowaniem pliku CSV do QGIS:

wprowadź opis zdjęcia tutaj


-2

Inna alternatywa w przypadku zarządzania dużymi zestawami danych i oczywiście czasochłonnego przejścia do kalkulatora pola (bez zapętlania) lub w edytorze tekstowym: - zapisz swoje dane jako zmienną CSV + XY + dla połączenia z naszym plikiem kształtowym polugone - prześlij plik CSV z wtyczką (import csv), a następnie zapisz jako plik shapefile (punkt) - następnie zamknij q gis - z powrotem do folderu z punktem shapefile, zduplikuj odpowiednią tabelę dbf / zmień nazwę - otwórz Qgis - prześlij nowy dbf i dołącz do shapefile (funkcje wielokąta)

Jeden kamień, dwa gołębie: masz potencjalnie 1) punkt kształtu ze wszystkimi danymi i wszystkimi możliwościami reprezentacji 2) i niezależny plik kształtu z połączoną tabelą dbf (edytowalną!) Połączoną z wielokątem dla kartografii tematycznej

To trochę niegrzeczne, ale dość proste ...

bs_epidemio


3
Chociaż w tej odpowiedzi omówiono sposób .csvprzekształcenia pliku do formatu edytowalnego, nie zawiera on odpowiedzi na pierwotne pytanie, jak przekonwertować wartość atrybutu z tekstu na liczbę . Chociaż ważne są wysokiej jakości, ukierunkowane pytania, równie ważne jest, aby odpowiedzi na te pytania były jak najbardziej ukierunkowane i adekwatne do tego, co zostało zadane pierwotnie.
Uzyskaj Spatial
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.