我在python中有一个for循环,在每个步骤结束时,我希望将输出添加为csv文件中的新列。我的输出是40x1阵列。因此,如果for循环包含100个步骤,我想要一个包含100列和最后40行的csv文件。我现在所拥有的,在每个时间步骤结束时如下:
with open( 'File name.csv','w') as output:
writer=csv.writer(output, lineterminator='\n')
for val in myvector:
writer.writerow([val])
但是,这会创建不同的csv文件,每行包含40行和1列。如何将它们全部添加为同一个csv文件中的不同列?这将为我节省大量的计算时间,因此非常感谢任何帮助。
答案 0 :(得分:0)
仅仅因为你的OP中没有明确说明,我会在两种情况下打破我的答案:
<强> 1。 myvector
是列表:
从这里采取:Rotating a two-dimensional array in Python
with open( 'File name.csv','w') as output:
writer=csv.writer(output, lineterminator='\n')
for val in list(zip(*myvector[::-1])):
writer.writerow(val)
<强> 2。 myvector
是一个DataFrame :
with open( 'File name.csv','w') as output:
writer=csv.writer(output, lineterminator='\n')
for val in myvector.transpose():
writer.writerow(val)
答案 1 :(得分:0)
您是否需要单独将每列写入文件?如果没有,我会将所有数据存储在DataFrame
中,然后将DataFrame
一次性写入CSV文件。您应该能够复制并粘贴此示例并在更改文件名后运行它。
import pandas as pd
# Sample column data (ints 0 through 39)
my_vector = range(0, 40)
# Set up empty DataFrame
data = pd.DataFrame({'Column_1' : []})
for i in range(0, 100):
# Set the ith column equal to the column data we have
data['Column_' + str(i)] = my_vector
data.to_csv('File name.csv', index=False, header=False)