这个问题是我刚才在这里发布的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)
我的问题是:这是转换所需数据的唯一方法吗?如果没有,还有哪些其他方法?
谢谢
答案 0 :(得分:2)
pd.DataFrame.append
我对此压力还不够。 pd.DataFrame.append
方法很昂贵,因为它不必要地复制数据。将其循环放置会使其成本高出 n 倍。
相反,您可以将字典列表提供给pd.DataFrame
构造函数:
df = pd.DataFrame(df_initial['seriesID'].tolist())