Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在csv文件中打印一个新列,该列与另一列之前的两个索引不同_Python_Python 3.x_Pandas_Numpy - Fatal编程技术网

Python 在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

我有一个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  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