Вывести несколько выходных строк в CSV-файл - PullRequest
1 голос
/ 31 мая 2019

Пусть

A='First'
B='Random'
C='Degree'
D='Largest'

A='Second'
B='Odd'
C='Inclined'
D='Maximum'

A='Third'
B='Even'
C='Steep'
D='Smallest'

A='Fourth'
B='Prime'
C='Gradient'
D='Minimum'

c = ['Group', 'Number', 'Angle', 'Max value']

df = pd.DataFrame([[A, B, C, D]], columns=c)
print (df)

#to csv
df.to_csv('Output.csv', encoding='utf-8', index=False)

Фактический объем производства:

Показывает только последний вывод, вместо каждого значения. Таким образом, если есть N значений, CSV должен хранить все N значений один под другим

Group  Number Angle    Max Value 
Fourth Prime  Gradient Minimum

Ожидаемый результат:

Output

Ответы [ 5 ]

1 голос
/ 31 мая 2019

Попробуйте этот код просто и легко

dictionary = {'Group':['First','Second','Third','Fourth'],
'Number' :['Random','Odd','Even','Prime'],
'Angle':['Degree','Inclined','Steep','Gradient'],
'Max value' :['Largest','Maximum','Smallest','Minimum']}
df = pd.DataFrame(dictionary)
print (df)
#to csv
df.to_csv('Output.csv', encoding='utf-8', index=False)
1 голос
/ 31 мая 2019

Вы должны выполнить следующую процедуру:

Сначала составьте список всех столбцов, например:

A = ['First', 'Random', 'Degree', 'Largest']
B = ['Second', 'Odd', 'Inclined', 'Maximum']
C = ['Third', 'Even', 'Steep', 'Smallest']
D = ['Fourth', 'Prime', 'Gradient', 'Minimum']

А затем

c = ['Group', 'Number', 'Angle', 'Max value']
df = pd.DataFrame([A, B, C, D], columns=c)
print (df)

#to csv
df.to_csv('Output.csv', encoding='utf-8', index=False)

Вывод:

    Group  Number     Angle Max value
0   First  Random    Degree   Largest
1  Second     Odd  Inclined   Maximum
2   Third    Even     Steep  Smallest
3  Fourth   Prime  Gradient   Minimum
1 голос
/ 31 мая 2019

Вы можете перейти со следующим кодом,

import pandas as pd

data = [
    ['First', 'Random', 'Degree', 'Largest'],
    ['Second', 'Odd', 'Inclined', 'Maximum'],
    ['Third', 'Even', 'Steep', 'Smallest'],
    ['Fourth', 'Prime', 'Gradient', 'Minimum']
]


c = ['Group', 'Number', 'Angle', 'Max value']

df = pd.DataFrame(data, columns=c)
print (df)

df.to_csv('Output.csv', encoding='utf-8', index=False)

, и результат будет

enter image description here

Также CSV-файл, который выполучить

enter image description here

1 голос
/ 31 мая 2019

Вы перезаписываете свои переменные A, B, C, D каждый раз, поэтому в конце в содержит только значения вашей последней итерации.

Конструкция ваших переменных интуитивно понятна, но в вашем случае будет работать следующее:

A = ['First', 'Second', 'Third', 'Fourth']
B = ['Random', 'Odd', 'Even', 'Prime']
C = ['Degree', 'Inclined', 'Steep', 'Gradient']
D = ['Largest', 'Maximum', 'Smallest', 'Minimum']

c = ['Group', 'Number', 'Angle', 'Max value']

df = pd.DataFrame(data =[A, B, C, D])

df = df.T
df.columns = c
print (df)

#to csv
df.to_csv('Output.csv', encoding='utf-8', index=False)

    Group  Number     Angle Max value
0   First  Random    Degree   Largest
1  Second     Odd  Inclined   Maximum
2   Third    Even     Steep  Smallest
3  Fourth   Prime  Gradient   Minimum
1 голос
/ 31 мая 2019

Вы перезаписываете свои A B C D переменные каждый раз, когда переопределяете их.Вы должны добавить их во вложенный список или использовать цикл:

data = [
    ['First', 'Random', 'Degree', 'Largest'],
    ['Second', 'Odd', 'Inclined', 'Maximum'],
    ['Third', 'Even', 'Steep', 'Smallest'],
    ['Fourth', 'Prime', 'Gradient', 'Minimum']
]

df = pd.DataFrame(data, columns=c)

Или ....

A = ['First', 'Random', 'Degree', 'Largest']
B = ['Second', 'Odd', 'Inclined', 'Maximum']
C = ['Third', 'Even', 'Steep', 'Smallest']
D = ['Fourth', 'Prime', 'Gradient', 'Minimum']

df = pd.DataFrame([A, B, C, D], columns=c]
...