Python:将数据写入csv文件

时间:2018-04-07 08:38:50

标签: python pandas numpy

从Matlab到Python,所以我有点困惑。

我有一个脚本可以计算多次运行的波浪周期,波浪数,波浪高度和RAO。例如,RAO数组在循环中创建如下:

# Calculation of RAO

rao_2[j] = sway[j]/wave[j]
rao_3[j] = heave[j]/wave[j]
rao_4[j] = roll[j]/(k[j]*wave[j])

我想将所有信息保存在CSV文件中,我希望每行都运行行,列是'Period','Wave Number','Wave','RAO'等。

我尝试使用以下方法:

prelim_data = list(zip(T, k, wave, wave_front, wave_back, rao_2, rao_3, rao_4))

df = pd.DataFrame(data=prelim_data, columns=['Period', 'Wave Number', 'Wave', 'Front Wave', 'Back Wave', 'RAO 2', 'RAO 3', 'RAO 4'])

df.to_csv(pre_fid1, index=False, header=False)

但是这似乎将它全部写入一列中的一个列表中,这不是一个太大的交易。但是当我想将来自五个不同运行的五个CSV文件合并为一个大文件时,问题就出现了。

它们具有不同的行数但列数相同,但是当我将它们组合时:

import pandas as pd

pieces = []

for num in [8, 9, 10, 11, 12, 13, 14, 15]:
    s = pd.read_csv('main/prelim_results%d.csv' % num, header=1)
    print('Reading Number: ', num)
    print(s.loc[0][0])
    pieces.append(s)

newcsv = pd.concat(pieces, axis=0)
newcsv.to_csv('main/prelim_main.csv', index=0, header=0)

data = pd.read_csv('main/prelim_main.csv', header=None)

第一个CSV文件写入第一行..我做错了什么?

有没有更好的方法来保存我的数据并将其合并到一个文件中?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

import pandas as pd
pieces = []
for num in range(8,16):
    s = pd.read_csv('main/prelim_results%d.csv' % num)
    print (s.head())
    print('Reading Number: ', num)
    pieces.append(s)
newcsv = pd.concat(pieces, axis=0)
newcsv.to_csv('main/prelim_main.csv', index=0, header=0)
data = pd.read_csv('main/prelim_main.csv', header=None)
print (data.head())