Как экспортировать данные в файл CSV с именем переменной в заголовке и иметь данные в столбцах с заголовками? - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь экспортировать мой массив в python в файл CSV, где заголовок файла CSV содержит переменную Te_t / Ti_t, которая является целым числом.Если бы это был оператор print, он был бы следующим: print ("TMP output Ti / Te ratio =", Ti_Te_ratio) Я также хотел бы, чтобы массивы были в столбцах, а не в строках с заголовком для каждого столбца.Я хочу иметь столбец, в котором первая строка "Tu" со всеми значениями в массиве Tu перечислены в строках ниже.То же самое для n_u_simp, n_u_com и q_par.

Я попробовал функцию zip (), но она поместила все в одну ячейку вместо одного значения для каждой строки.

if (Ti_Te_ratio == 1):
    data_file = open('Ti=Te.csv')
    csv_f = csv.reader(data_file)

if (Ti_Te_ratio == 2):
    data_file = open('Ti=2Te.csv')
    csv_f = csv.reader(data_file)

if (Ti_Te_ratio == 3):
    data_file = open('Ti=3Te.csv')
    csv_f = csv.reader(data_file)

if (Ti_Te_ratio == 4):
    data_file = open('Ti=4Te.csv')
    csv_f = csv.reader(data_file)

if (Ti_Te_ratio == 5):
    data_file = open('Ti=5Te.csv')
    csv_f = csv.reader(data_file)



for row in csv_f:

    if i == 26:
        #print("end")
        break
    else:
        #print(i)
        Te_t[i] = float(row[3])
        Ti_t[i] = float(row[4])
        n_t[i] = float(row[5])
        L[i] = float(row[10])
        #print(Ti_t[i])
        i = i+1


if y ==1:      
    for x in range(0, len(Te_t)):
        gamma[x] = 2.5*Ti_t[x]/Te_t[x]+2/(1-del_e)-0.5*np.log((2*np.pi*m_e/m_i)*(1+Ti_t[x]/Te_t[x])*(1-del_e)**-2)+.05       
        c_s[x] = np.power([k_b*(Ti_t[x]+Te_t[x])*K_ev/(m_e+m_i)] , 0.5)
        q_par[x] = gamma[x]*n_t[x]*k_b*K_ev*(Ti_t[x]+Te_t[x])*c_s[x]
        Tu[x] = np.power(np.power(Ti_t[x]+Te_t[x], (7/2))+(7/2)*q_par[x]*L[x]/ko_e , (2/7))
        n_u_simp[x] = 2*n_t[x]*(Ti_t[x]+Te_t[x])/Tu[x]
        n_u_com[x] = np.power(m_i/(2*e*(Ti_t[x]+Te_t[x]))*4*np.power(q_par[x], 2)*np.power((7/2)*q_par[x]*L[x]/ko_e, (-4/7))/(np.power(gamma[x], 2)*e**2), 0.5)


csvData = [Tu, n_u_simp, n_u_com, q_par]
#print(csvData)
#zip(csvData)
with open ('TPM-output.csv', 'w') as csvFile:
    writer = csv.writer(csvFile)
    writer.writerow("Tu")
    writer.writerows(csvData)

csvFile.close()

До сих пор мне удавалось только заставить его поместить букву Ту в каждую ячейку для заголовков столбцов и экспортировать в строки.Ниже приводится копия того, что в моем CSV-файле.На самом деле его нет в столбцах, каждый массив находится в отдельной строке.Т и

+135,7411089 +126,2857386 +116,6743715 +105,2261556 94,3936439 85,04100602 77,27575818 70,15596139 63,47000227 59,11112133 52,5825812 47,72072464 44,20086349 40,25642183 38,35306222 36,44921725 3 3 12,95596517 16,55850172 20,55199705 24,38646314 31,9979594 +44,02489721 +88,50809647 +115,3489554

2.01E + 19 1.78E + 19 1.51E+19 1,27E + 19 1,07E + 19 8,13E + 18 6,66E + 18 5,64E + 18 4,20E + 18 3,37E + 18 2,83E + 18 2,46E + 18 2,12E + 18 1,61E + 18 1,39E + 181,14E + 18 0 0 4,82E + 17 8,52E + 17 1,49E + 18 2,07E + 18 3,54E + 18 6,87E + 18 1,66E + 19 2,12E + 19

1,65E + 19 1,51E+19 1,31E + 19 1,11E + 19 9,35E + 18 7,28E + 18 6,03E + 18 5,12E + 18 3,94E + 18 3,26E + 18 2,71E + 18 2,34E + 18 2,02E + 18 1,57E + 181,37E + 18 1,15Е + 18 нан. Нан.67189268,82 48514866.67 34766462.13 22769066.21 16236250.69 11908198.17 7704703.926 5611743.266 3939169.331 2958742,767 2269255.489 1509390.105 1211503.312 927292.3935 0 0 83917,09767 212002.0129 504002.7678 896634.4605 2287547.807 7043820.491 50277652.93 95981325.17

...