Сохранить пропустить строки в пандах читать CSV - PullRequest
0 голосов
/ 30 мая 2018

У меня есть список пропускаемых строк (скажем, [1,5,10] -> номера строк), и когда я передаю это в pandas read_csv , он игнорирует эти строки,Но мне нужно сохранить эти пропущенные строки в другом текстовом файле.

Я просмотрел документацию для pandas read_csv и несколько других статей, но не знаю, как сохранить это в текстовый файл.

Пример:

Входной файл:

a,b,c
# Some Junk to Skip 1
4,5,6
# Some junk to skip 2
9,20,9
2,3,4
5,6,7

Код:

skiprows = [1,3]
df = pandas.read_csv(file, skip_rows = skiprows)

Теперь output.txt:

# Some junk to skip 1
# Some junk to skip 2

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

попробуйте это,

df=pd.read_csv('input.csv')
skiprows=[1,3,6]
df,df_skiprow=df.drop(skiprows),df.iloc[skiprows]
#df_skiprow.to_csv('skiprows.csv',index=False)

Ввод:

    a    b
0   1   c1
1   2   c2
2   3   c3
3   4   c4
4   5   c5
5   6   c6
6   7   c7
7   8   c8
8   9   c9
9  10  c10

Выход: df

    a    b
0   1   c1
2   3   c3
4   5   c5
5   6   c6
7   8   c8
8   9   c9
9  10  c10

df_skiprow

   a   b
1  2  c2
3  4  c4
6  7  c7

Объяснение:

  1. чтение всего файла.
  2. разделение файла по df и skiprow
  3. преобразование в отдельный файл csv.
0 голосов
/ 30 мая 2018
def write_skiprows(infile, skiprows, outfile='skiprows.csv')
    maxrow = max(skiprows)
    with open(infile, 'r') as f, open(outfile, 'w') as o:
        for i, line in enumerate(f):
            if i in skiprows:
                o.write(line)
            if i == maxrow:
                return
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...