【发布时间】:2016-03-15 13:05:32
【问题描述】:
我在 python 中使用 pandas 来获取一个 csv 文件,对其进行一些小的转换,然后将两列作为 json 文件输出。我想要两个值 timestamp 和 value。我只想要两个新列并删除文件的其余部分,使其看起来像:
{"timestamp[0]":value[0],"timestamp[1]":value[1],"timestamp[2]":value[2],..}
但是现在使用我的代码,我仍然可以获得所有旧的 csv 数据,并且我想要的部分被附加(并且以格式):
{stuff I don't want, "timestamp":"timestamp[0]", "value":value[0]},{...}{...}
这是我目前使用的代码:
import csv
import pandas as pd
import delorean as dl
def doThings(infile, outfile):
f = pd.read_csv(infile)
hmCols = {"timestamp": [], "value": []}
for i, row in f.iterrows():
total = row["Playspace_1"] + row["Playspace_2"] + row["Playspace_3"] + row["Playspace_4"]
hmCols["timestamp"].append(row["Timestamp"])
hmCols["value"].append(total)
f["timestamp"] = hmCols["timestamp"] #old code
f["value"] = hmCols["value"] #old code
f.to_json(outfile, orient="records") #old code
pd.DataFrame(hmCols).to_json(outfile, orient="records") #From user Turn
doThings("test.csv", "heatmapData.json")
任何帮助将不胜感激
因此,根据 Turn 的帮助,我按照他的建议更改了代码。现在我得到了输出:
[{"timestamp":1417982808063,"value":1},{"timestamp":1417982808063,"value":1},{"timestamp":1417982808753,"value":1},{"timestamp":1417982811944,"value":1} ...
现在我需要将其转换为:
[{"1417982808063":1},{"1417982808063":1},{"1417982808753":1},{"1417982811944":1}...]
【问题讨论】: