这个问题是我不久前在这里发布的a question的扩展。我试图理解@patrickjlong1提供的公认答案(再次感谢),因此我正在一步一步地运行代码并检查结果。你知道吗
我发现这部分很难理解。你知道吗
>>> df_initial
data seriesID
0 {'year': '2017', 'period': 'M12', 'periodName'... SMS42000000000000001
1 {'year': '2017', 'period': 'M11', 'periodName'... SMS42000000000000001
2 {'year': '2017', 'period': 'M10', 'periodName'... SMS42000000000000001
3 {'year': '2017', 'period': 'M09', 'periodName'... SMS42000000000000001
4 {'year': '2017', 'period': 'M08', 'periodName'... SMS42000000000000001
5 {'year': '2017', 'period': 'M07', 'periodName'... SMS42000000000000001
第一列的每一行中的元素是一个字典,它们都有公共键:“year”、“period”等。我想将其转换为:
footnotes period periodName value year
0 {} M12 December 6418025 2017
0 {} M11 November 6418195 2017
0 {} M10 October 6418284 2017
...
@patrickjlong1提供的解决方案是一次转换一行,然后将它们全部追加,我的理解是一个字典可以转换成一个数据帧:
for i in range(0, len(df_initial)):
df_row = pd.DataFrame(df_initial['data'][i])
df_row['seriesID'] = series_col
df = df.append(df_row, ignore_index=True)
我的问题是:这是我想要的唯一转换数据的方法吗?如果没有,还有什么方法?你知道吗
谢谢
避免循环中的
pd.DataFrame.append
我怎么强调都不过分。^{} 方法很昂贵,因为它不必要地复制数据。把它放在一个循环中,会使它的成本提高一倍。你知道吗
相反,您可以将字典列表提供给
pd.DataFrame
构造函数:相关问题 更多 >
编程相关推荐