Попытка экспортировать значения из файлов данных в CSV - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь экспортировать некоторые значения в CSV-файл.Я запускаю следующий код:

import glob
import csv

lines=[]

files = glob.glob('*#*')             
for file in files:
    with open(file,'r+') as f:
        first_line = f.readline()
        lines.append(first_line[28:39])

print(lines)

Готовый код, который я нашел для экспорта в CSV.не совсем правильно точно.Мне не нужен цикл, который я думаю (для val ..)

with open("test.csv", "r+") as output:
    writer = csv.writer(output, lineterminator='\n')
         for val in lines:
    writer.writerow([lines])     

Проблема, с которой я сталкиваюсь, заключается в том, что я храню значения в списке.Поэтому они экспортируют в CSV немного грязно.Есть ли способ экспортировать их во второй столбец Excel и в первый добавить имя файла?

Мои файлы имеют такие имена, как (0116,0216,0316 и т. Д.)

Я знаю, что было бы полезно работать с пандами, потому что я работаю с файлами данных и Excel.Однако я не знаком с Pandas Atm, поэтому может быть полезен и другой способ.

Я добавляю два снимка экрана, которые могут помочь

the files that I read have the below input and i retrieve the first row and the second column number in our example the value

the files are general files with just txt input

Поэтому я хочу экспортировать «1660195» во второй столбец CSV, который я экспортирую.и в первом столбце я хочу имя файла.например

[Снимок экрана 1 вход]

[Снимок экрана 2 файлы]

the output csv should be like that

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

вы можете создать фрейм данных в пандах прямо из вашего файла данных и попробовать что-то вроде этого.

>>> df = pd.DataFrame({'foo':list('ABC')}, index=[0,2,1])
>>> df
  foo
0   A
2   B
1   C
>>> df.loc[df.index[0], 'foo']  # here index[0] is your first row & column is 'foo'
'A'

>>> df.loc[df.index[1], 'foo']
'B'

ИЛИ

>>> df.iloc[0]
foo    A
Name: 0, dtype: object

другой пример:

                              Region                            Nation        Item Type  Order Date   Order ID   Ship Date  Units Sold  U_Price  Total Cost
0               Australia and Oceania                            Tuvalu        Baby Food   5/28/2010  669165933   6/27/2010        9925   255.28  1582243.50
1   Central America and the Caribbean                           Grenada           Cereal   8/22/2012  963881480   9/15/2012        2804   205.70   328376.44
2                              Europe                            Russia  Office Supplies    5/2/2014  341417157    5/8/2014        1779   651.21   933903.84
3                  Sub-Saharan Africa             Sao Tome and Principe           Fruits   6/20/2014  514321792    7/5/2014        8102     9.33    56065.84
4                  Sub-Saharan Africa                            Rwanda  Office Supplies    2/1/2013  115456712    2/6/2013        5062   651.21  2657347.52

Таким образом, вы можете код, как показано ниже ..

import pandas as pd
##################### Pandas Display Settings For Terminal #########
pd.set_option('display.height', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('expand_frame_repr', True)
##################### END OF THE Display Settings ###################

df_csv = pd.read_csv("Sales-Records.csv")).fillna('')
df_trim = df_csv[['Region', 'Nation', 'Item Type','Order Date', 'Order ID','Ship Date', 'Units Sold', 'U_Price','Total Cost']]
print(df_trim.loc[df_trim.index[0], 'Nation'])

выход

./test.py
Tuvalu
0 голосов
/ 28 сентября 2018

привет, я на самом деле пробовал панд, и результат в порядке.

import glob


import pandas as pd

lines=[]

files = glob.glob('*#*')             
for file in files:
    with open(file,'r+') as f:
        first_line = f.readline()
        lines.append(first_line[28:39])



df = pd.DataFrame(lines)
df.to_csv('tst.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...