Используйте списки с разгоранием для кортежей и затем DataFrame
contructor:
L = [(k1, v1) for k, v in df['A'].to_dict().items() for k1, v1 in v.items()]
df = pd.DataFrame(L, columns = ['keys','values'])
print (df)
keys values
0 k1 10
1 k2 20
2 k3 30
3 k4 15
Или создайте DataFrame
и stack
:
df = (pd.DataFrame(df['A'].values.tolist())
.stack().reset_index(level=0, drop=True)
.reset_index())
df.columns = ['keys','values']
print (df)
keys values
0 k1 10.0
1 k2 20.0
2 k3 30.0
3 k4 15.0