Python 在csv文件中打印一个新列,该列与另一列之前的两个索引不同
我有一个csv文件,有4列->第1列、第2列、第3列、第4列 假设csv文件中的数据当前为:Python 在csv文件中打印一个新列,该列与另一列之前的两个索引不同,python,python-3.x,pandas,numpy,Python,Python 3.x,Pandas,Numpy,我有一个csv文件,有4列->第1列、第2列、第3列、第4列 假设csv文件中的数据当前为: Column1 Column2 Column3 Column4 10 20 30 40 12 23 78 98 23 67 101 123 现在,我想添加另外4列,分别打印列之间的差异: Column1 Column2 Column3 Column4 Column5 Column6
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)
试试这个:
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