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.