【发布时间】:2022-01-09 08:05:38
【问题描述】:
我创建了一个 DataFrame 并设置了一个索引。如果我通过 append 追加一行,那么索引就会丢失。
import pandas as pd
history = {}
history_cols = {
"event_time": "E",
"close": "c",
"base_volume": "v",
"quote_volume": "q",
"total_number_of_trades": "n"
}
ticks = [
{'event_time': 1638470651223, 'close': '133.41000000', 'base_volume': '70094.70000000', 'quote_volume': '9415851.87690000', 'total_number_of_trades': 30917},
{'event_time': 1638470652088, 'close': '133.41000000', 'base_volume': '70094.70000000', 'quote_volume': '9415851.87690000', 'total_number_of_trades': 30917},
{'event_time': 1638470653224, 'close': '133.41000000', 'base_volume': '70094.70000000', 'quote_volume': '9415851.87690000', 'total_number_of_trades': 30917},
{'event_time': 1638470654189, 'close': '133.41000000', 'base_volume': '70094.70000000', 'quote_volume': '9415851.87690000', 'total_number_of_trades': 30917},
{'event_time': 1638470655203, 'close': '133.41000000', 'base_volume': '70094.70000000', 'quote_volume': '9415851.87690000', 'total_number_of_trades': 30917},
{'event_time': 1638470656201, 'close': '133.41000000', 'base_volume': '70094.70000000', 'quote_volume': '9415851.87690000', 'total_number_of_trades': 30917}
]
history["AXSBUSD"] = pd.DataFrame(columns=history_cols.keys())
history["AXSBUSD"].set_index("event_time", inplace=True)
history["AXSBUSD"]
空的DataFrame有索引:
close base_volume quote_volume total_number_of_trades
event_time
现在我在一行后面加上一个 dict ...
history["AXSBUSD"] = history["AXSBUSD"].append(ticks[0], ignore_index=True)
history["AXSBUSD"]
...这是结果:
close base_volume quote_volume total_number_of_trades event_time
0 133.41000000 70094.70000000 9415851.87690000 30917 1.638471e+12
有人知道为什么索引消失了吗?
【问题讨论】:
-
你有什么理由一次排地做这件事?
history["AXSBUSD"] = history["AXSBUSD"].append(pd.DataFrame(ticks).set_index('event_time'))使用带有刻度的 DataFrame 构造函数和 set_index,然后附加到字典中的数据帧。 -
原因是我每秒都会得到一个刻度,我想将它添加到 DataFrame 中,然后进行一些计算,例如移动平均
标签: python pandas dataframe indexing append