我有一个read.csv DataFrame,它在每次运行脚本时都会不断更新一个新行,看起来像...
df = pd.read_csv(file_path)
print(df.to_string(index=False))
timestamp Puts Calls PutCh CallCh ChDiff
09:41:12 AM 2027891 1820724 280101 200974 79127
09:48:51 AM 2075976 1862053 328186 242303 85883
09:58:48 AM 2091487 1885842 343697 266092 77605
10:08:21 AM 2091879 1918592 344089 298842 45247
02:26:00 PM 1995234 1941917 247444 322167 -74723
02:44:36 PM 1990071 1934874 242281 315124 -72843
02:56:17 PM 1970892 1938472 223102 318722 -95620
字符串
现在我想从我读过的关于df.diff()的文章中得到每一个后续行的差异。所以我删除了时间戳列,得到一个新的名称为df1的文件,并编写了我的脚本。
df1.diff()
型
得到的输出是....
Puts Calls PutCh CallCh ChDiff
NaN NaN NaN NaN NaN
48085.0 41329.0 48085.0 41329.0 6756.0
15511.0 23789.0 15511.0 23789.0 -8278.0
392.0 32750.0 392.0 32750.0 -32358.0
-96645.0 23325.0 -96645.0 23325.0 -119970.0
-5163.0 -7043.0 -5163.0 -7043.0 1880.0
-19179.0 3598.0 -19179.0 3598.0 -22777.0
型
在这里,我希望将这些差值添加到原始DataFrame(df)中的每一列的括号中。更详细地说,我的输出应该是这样的(这里的时间戳列也应该像我的df一样).
Puts Calls PutCh CallCh ChDiff
2027891 1820724 280101 200974 79127
2075976 1862053 328186 242303 85883
(48085) (41329) (48085) (41329) (6756)
2091487 1885842 343697 266092 77605
(15511) (23789) (15511) (23789) (-8278)
2091879 1918592 344089 298842 45247
(392) (32750) (392) (32750) (-32358)
型
有没有办法做到这一点?
2条答案
按热度按时间yduiuuwa1#
将
diff
的输出转换为字符串,将圆括号和concat
添加回原始值,最后添加sort_index
以按顺序重新组织行:字符串
输出量:
型
带有
termcolor
的变体:型
输出量:
的数据
bzzcjhmw2#
您可以将差异转换为字符串以添加'()',然后在对结果进行排序之前连接您的字符串:
字符串
输出量:
型