【发布时间】:2018-08-28 16:52:01
【问题描述】:
最初,我有一个带有日期字段的空数据框,后来我尝试在 for 循环中将它与新数据框合并。
com_df = pd.DataFrame(columns=['date'])
for i in data_dict.values():
response = requests.get('www.example.com/' + i + '?format=json')
data = json.loads(response.content.decode('utf-8'))
df = dataframe_format(data[1]) // convert list of dict to dataframe
com_df = pd.merge(com_df, df, on='date', how='outer')
所以现在的输出是这样的,
date value_x value_y value_x value_y value
0 2017 1.722333e+13 8.711267e+12 3485.0 197.713256 46.030025
1 2016 1.829506e+13 7.320738e+12 3052.0 249.907289 -2.024998
2 2015 3.932602e+13 8.188019e+12 2827.0 480.287296 -6.007182
但我希望列名是下面字典的键,
data_dict = {'A': '1','B': '2','C': '3','D': '4','E': '5'}
也就是说,
date A B C D E
0 2017 1.722333e+13 8.711267e+12 3485.0 197.713256 46.030025
1 2016 1.829506e+13 7.320738e+12 3052.0 249.907289 -2.024998
2 2015 3.932602e+13 8.188019e+12 2827.0 480.287296 -6.007182
【问题讨论】:
-
一般来说,字典键在 Python 中是不排序的。你怎么知道第二列应该是“A”?还有其他标准吗?还是您想按值对键进行排序?
-
这样的东西应该可以工作
com_df.columns = list(data_dict.keys()) -
@VageEgiazarian 正如我上面所说,一般来说,字典键在 Python 中是不排序的。
-
@DYZ 为什么要排序?如果你想排序
com_df.columns = list(data_dict.keys()).sort() -
@VageEgiazarian
list(data_dict.keys())允许以任何顺序报告密钥。我不确定这是否是 OP 想要的。我什至不确定他们是否希望按字母顺序对键进行排序,因为为此,不需要定义字典,一个列表就足够了。
标签: python pandas dictionary dataframe