从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文件写入第一行..我做错了什么?
有没有更好的方法来保存我的数据并将其合并到一个文件中?
感谢您的帮助
答案 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())