我有一本字典,如下所示:
date_pair_dict = {
"15-02-2022 15-02-2022": ["key 1 val 1", "key 1 val 2", "key 1 val 3"],
"15-02-2022 16-02-2022": ["key 2 val 1", "key 2 val 2", "key 2 val 3"],
"16-02-2022 16-02-2022": ["key 3 val 1", "key 3 val 2", "key 3 val 3"],
"16-02-2022 17-02-2022": ["key 4 val 1", "key 4 val 2", "key 4 val 3"]
}
以及标题列表:
headers = ["date pair header", "header val 1", "header val 2", "header val 3"]
我想创建一个pandas.DataFrame
并将其写入Excel,格式如下expected output:
date pair header | header val 1 | header val 2 | header val 3 |
---|---|---|---|
15-02-2022 15-02-2022 | key 1 val 1 | key 1 val 2 | key 1 val 3 |
15-02-2022 16-02-2022 | key 2 val 1 | key 2 val 2 | key 2 val 3 |
16-02-2022 16-02-2022 | key 3 val 1 | key 3 val 2 | key 3 val 3 |
16-02-2022 17-02-2022 | key 4 val 1 | key 4 val 2 | key 4 val 3 |
现在,我正在使用这种(可以说是非常悲哀的)方法:
import pandas
date_pair_dict = {
"15-02-2022 15-02-2022": ["key 1 val 1", "key 1 val 2", "key 1 val 3"],
"15-02-2022 16-02-2022": ["key 2 val 1", "key 2 val 2", "key 2 val 3"],
"16-02-2022 16-02-2022": ["key 3 val 1", "key 3 val 2", "key 3 val 3"],
"16-02-2022 17-02-2022": ["key 4 val 1", "key 4 val 2", "key 4 val 3"]
}
headers = ["date pair header", "header val 1", "header val 2", "header val 3"]
list_of_keys, list_of_val_1, list_of_val_2, list_of_val_3 = [], [], [], []
for key in date_pair_dict.keys():
list_of_keys.append(key)
val_1, val_2, val_3 = date_pair_dict.get(key)
list_of_val_1.append(val_1)
list_of_val_2.append(val_2)
list_of_val_3.append(val_3)
dataframe = pandas.DataFrame(
{
headers[0]: list_of_keys,
headers[1]: list_of_val_1,
headers[2]: list_of_val_2,
headers[3]: list_of_val_3,
}
)
这是不可扩展的.实际上,这date_pair_dict
可以具有任意数量的键,每个键对应于任意长度的列表.然而,这些列表的长度将始终保持不变,并且将事先知道(我将始终预定义headers
列表).
此外,我认为,由于我执行以下操作,这可能会使我的数据帧与原始密钥的顺序不同:
for key in dictionary.keys():
....
键是日期对,当用作数据帧的第一列时为need to remain in order.
Is there a better way to do this, preferably using a dictionary comprehension?