Чтение нескольких файлов .csv и извлечение (в новых файлах .csv) всех строк, соответствующих непустым ячейкам в определенном столбце. - PullRequest
1 голос
/ 15 октября 2019

У меня есть несколько файлов .csv (около 250). Каждый из них имеет одинаковые столбцы. У всех них достаточно пустых ячеек во многих столбцах. Мне интересно извлечь только все строки, соответствующие непустым ячейкам определенного столбца (с именем 20201-2.0). Я считаю, что это будет работать лучше с пандами .

До сих пор я сделал следующий шаг, который работал бы, если бы продолжил:

import pandas as pd
import glob

path = './'
column = ['20201-2.0']

all_files = glob.glob(path + "/*.csv")

li = []

for filename in all_files:
    df = pd.read_csv(filename,?,?)
    li.append(df)

Есть ли способ, которым я мог бы извлечь только строки, соответствующие непустым ячейкам столбца '20201-2,0 'в пределах df?

Или как-то иначе?

Джордж

Ответы [ 2 ]

2 голосов
/ 15 октября 2019
df = pd.read_csv('myfile.csv').dropna(subset='20201-2.0')
1 голос
/ 15 октября 2019

Если ячейки действительно «пустые» по сравнению с пространственной строкой («») или нулем, то они будут содержать «NaN» (истинный ноль). Вы должны быть в состоянии получить их с ...

df = li[li['20201-2.0'].notnull()]

Более полным примером ...

import pandas as pd
import numpy as np

# Create the dataframe "li" with a bunch of random numbers
li = pd.DataFrame(np.random.randn(5,4), columns= ['Col1', 'Col2','20201-2.0', 'Col4'])
# Make one sepcific cell below the "20201-2.0" column a null (NaN) value
li['20201-2.0'].iloc[2] = np.NaN
print(li) # See what youÄre working with

# Select for all rows, in all columns where the column "20201-2.0" is not a null
# This will return a full dataframe, with all the rows and columns - excluding any row(s) where the cell below "20201-2.0" was null
df = li[li['20201-2.0'].notnull()]
print(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...