如何使用numpy(首选)或python 3将数组作为单独的列添加到CSV文件中,而不覆盖CSV文件或数据



要追加的新数据长度更短!

这里有一个例子:

Add numpy array:
ema  =  [3.3  3.4  3.5  3.6]
(csv now has 3-columns of equal length)
1.1  2.1    append  ema  to end up with:    1.1  2.1  0
1.2  2.2                                    1.2  2.2  0
1.3  2.3                                    1.3  2.3  3.3
1.4  2.4                                    1.4  2.4  3.4
1.5  2.5                                    1.5  2.5  3.5
1.6  2.6                                    1.6  2.6  3.6

@kinshukdua的注释建议,代码:

最好的方法是将旧数据读取为pandas数据帧,然后将列追加到其中,并用0s填充空列,最后将其写回csv。

使用此

import pandas as pd
my_csv_path = r"path/to/csv.csv"
df = pd.read_csv(my_csv_path)
ema_padded = np.concatenate([np.zeros(len(df) - ema.shape[0]), ema])
df['ema'] = pd.Series(ema_padded, index=df.index)
df.to_csv(my_csv_path)

df.to_csv(file_path,index=False(

最新更新