我有一个包含4列的csv文件-> Column1,Column2,Column3,Column4
假设csv文件中的数据当前为:
Column1 Column2 Column3 Column4
10 20 30 40
12 23 78 98
23 67 101 123
现在我要添加其他4个列,分别打印列的差异:
Column1 Column2 Column3 Column4 Column5 Column6 Column7 Column8
10 20 30 40 2 3 48 58
12 23 78 98 11 44 23 25
23 67 101 123
我每隔几秒钟就会收到新的数据行,所以我想这样做,以便每次将新数据添加到column1-column4时,都会将差异添加到column5-column8。
现在我只是连续地逐行添加
data = [b, c, d, e]
with open('dataset.csv', 'a', newline='') as myfile:
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
wr.writerow(data)
答案 0 :(得分:2)
尝试一下:
from io import StringIO
import pandas as pd
#simulate importing csv file.
csvfile = StringIO("""Column1 Column2 Column3 Column4
10 20 30 40
12 23 78 98
23 67 101 123""")
df = pd.read_csv(csvfile, sep='\s\s+')
df
df_out = pd.concat([df, df.diff(1).shift(-1)], axis=1)
df_out.to_csv('Output.csv', index=False, sep='\t')
!more Output.csv
输出:
Column1 Column2 Column3 Column4 Column1 Column2 Column3 Column4
10 20 30 40 2.0 3.0 48.0 58.0
12 23 78 98 11.0 44.0 23.0 25.0
23 67 101 123