Панди читають у таблиці без заголовків


238

Як я можу прочитати файл у форматі .csv (без заголовків) і коли мені потрібно лише підмножину стовпців (скажімо, 4-й та 7-й із загальної кількості 20 стовпців), використовуючи панди? Я, здається, не можу це зробитиusecols

Відповіді:


350

Для того, щоб прочитати CSV, який не має заголовка, і лише для певних стовпців вам потрібно передати параметри header=Noneта usecols=[3,6]для 4-го та 7-го стовпців:

df = pd.read_csv(file_path, header=None, usecols=[3,6])

Дивіться документи


67

Попередні відповіді були хорошими і правильними, але, на мою думку, додатковий namesпараметр зробить його ідеальним, і він повинен бути рекомендованим способом, особливо, коли у CSV немає headers.

Рішення

Використання usecolsта namesпараметри

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])

Додаткове читання

або використовувати, header=Noneщоб прямо сказати людям, що у csvзаголовків немає (все одно обидва рядки однакові )

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'], header=None)

Так що ви можете отримати свої дані за допомогою

# with `names` parameter
df['colA']
df['colB'] 

замість

# without `names` parameter
df[0]
df[1]

Поясніть

На основі read_csv , коли namesвони передаються явно, тоді headerвони будуть вести себе як Noneзамість 0, тож можна пропустити, header=Noneколи вони namesіснують.


9

Переконайтеся, що ви вказали пропуск header=Noneі додайте usecols=[3,6]для 4-го та 7-го стовпців.

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