Зміна значення атрибута рівня CSV з тексту на число в QGIS?


28

Я читаю у файлі CSV для посилання на файл .shp.

Усі змінні, які є просто числами, увійшли як текст.

Як змінити текстові змінні на числові в QGIS?

Відповіді:


37

У мене колись було те саме питання. Відповідь полягає в тому, що ви поміщаєте файл в одну папку із закінченням csvt. Наприклад, ваше ім'я файлу - xyzdata.csv, ви додаєте файл xyzdata.csvt

Цей, наприклад, ви можете редагувати за допомогою редактора. І в ньому ви встановлюєте такий тип даних, як цей. "Цілий", "Рядок", "Цілий", "Цілий", "Рядок", "Реальний"

Ціле число - це змінна для першого стовпця, рядок для другого тощо - переконайтесь, що файли названі однаково.

Редагувати: Дивіться також тут, якщо потрібно: http://underdark.wordpress.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/


Дякую lot1, так це правда, що всі файли CSV будуть читатись як текст? Можливо, я це собі уявляв, але коли я почав працювати з QGIS трохи раніше, я зв'язав файл CSV і цифри були цифрами. Здається, ця інформація повинна міститись у посібнику користувача. (можливо, я пропустив це)
HealthMaps

Так, і для мене це було досить дивно. Але якщо у вас є лише кілька стовпців, цей спосіб виконати нескладно. Отже ... це насправді вийшло у вас?
Шеферджо

Так, це прекрасно працює! Слідкуйте за тим, як налаштувати свій файл CSVT в Excel; додаткові лапки застрягають і т. д. Я використовую SAS або R для створення файлів, до яких я хочу зв’язати, щоб створити файл CSVT разом із файлом CSV не так вже й багато проблем. Здається, це потрібно виправити. Ще один ГІС, який я використовую, бачу числа в стовпці CSV, він читає їх як числа.
HealthMaps

Я знайшов плагін MMQGIS, який змінить стовпець від тексту до плаваючого або плаваючого до тексту. Працює лише для файлу форми, а не для пов'язаного файлу чи імпортного CSV-файлу. Дивіться michaelminn.com/linux/mmqgis
HealthMaps

Приємно чути, що. І thx для підказки для плагіна. Я також буду вдячний, якщо ви згоді приймете мою відповідь, чи не так?
Шеферджо

15

Замість того, щоб возитися з вхідним файлом, намагаючись зробити все зображення ідеальним, просто використовуйте калькулятор поля для перетворення тексту в число / реальне. Дивіться приклади нижче:

Польовий калькулятор

Полевий калькулятор до числа

Польовий калькулятор до реального

Таблиця атрибутів після функції


Коли я приніс файл CSV, я не зміг його редагувати. Кнопка редагування була затьмарена. Як я можу зробити його редагованим?
HealthMaps

Я не впевнений, що ви можете редагувати csv через qGIS. Я думаю, що я неправильно прочитав ваше запитання в тому, що ви вже імпортували дані csv у форміfile .
nagytech

2
Я зробив посилання, .shp на файл CSV, який мав стовпці з цифрами, але насправді був текстовим. Мабуть, не можна самостійно редагувати файл CSV або якщо він пов'язаний з файлом SHP. Так я зберег зв'язаний файл, а потім перезавантажив його і зміг редагувати текстові файли з цілим форматом, як запропонували. Здається, що файл .csvt працює найкраще, якщо у вас багато текстових стовпців, які потрібно перетворити, а потім скористатися методом калькулятора поля, якщо їх не так багато. Було б корисно мати можливість самостійно редагувати файл CSV, не пов’язаний ні з чим.
HealthMaps

11

Замість завантаження .csv за допомогою шару "Додати вектор" використовуйте інструмент "Розмежуваний текст". Він спробує виявити найбільш відповідний тип даних для кожного стовпця.

Докладніше див. Посібник користувача QGIS .

введіть тут опис зображення


Insta-fix! Дякую
user94812

5

MMQGis викликав цю проблему, і, як виявилося, він може її виправити.

Після того, як ви приєдналися до даних Shapefile & CSV, використовуйте інструмент «Змінити> Текст до плавання» MMQGis.

Як завжди, це залишає слід проміжних проміжних форм, але що ще нового


1

У QGIS 3.x поширеним джерелом помилок є вибір неправильного десяткового роздільника. Установіть або зніміть прапорець "Десятковий роздільник є комою", перш ніж завантажувати CSV у QGIS:

введіть тут опис зображення


-2

Інша альтернатива у випадку керування великими наборами даних, які, очевидно, забирають багато часу, щоб перейти до польового калькулятора (без циклу) або в текстовому редакторі: - збережіть свої дані у вигляді змінної CSV + XY + для спільного з нашим полугоном формату - завантажте ваш CSV із плагіном (імпорт csv), тоді збережіть як shapefile (крапку) - потім закрийте q gis - назад у папку з точкою shapefile, дублюйте відповідну таблицю dbf / перейменуйте - відкрийте Qgis - завантажте новий dbf та приєднайтесь до форм-файл (функції багатокутника)

Один камінь, два голуби: ви потенційно маєте 1) точку форми форми з усіма даними та всіма можливостями подання 2) та незалежний формуляр з таблицею dbf, з'єднаною (для редагування!), Пов’язаною з полігоном для тематичної картографії

Це трохи грубо, але досить прямо ...

bs_epidemio


3
Хоча ця відповідь обговорює, як .csvперетворити файл у формат, який можна редагувати, він не стосується оригінального питання про те, як перетворити значення атрибута з тексту в число . Хоча важливо мати якісні, цілеспрямовані запитання, однаково важливо, щоб відповіді на ці питання були максимально цілеспрямованими та відповідними тому, що було задано спочатку.
Отримайте просторовий
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.