Reputation: 679
I have a dictionary that looks as this:
result =
{'Var1': [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,0.0,0.0,0.0,0.0],
'Var2': [2.0,2.0,2.0,0.0,2.0,2.0,2.0,0.0,2.0,2.0,2.0,0.0,2.0,2.0,2.0,0.0]}
and I need to get a dataframe that looks as follows:
Var1 Var2
1 2.0 2.0
2 2.0 2.0
3 2.0 2.0
4 2.0 0.0
.. .. ..
I tried to do this:
pd.DataFrame(result.items(), columns=['A', 'B']).T
and I'm getting something similar to this:
0 1
A Var1 Var2
B [2.0, 2.0, 2.0, 2.0, ...] [2.0, 2.0, 2.0, 0.0, ...]
Can somebody guide me how to solve this issue? Thanks!
Upvotes: 1
Views: 203
Reputation: 4607
You can use Pandas Dataframe from_dict to read the dictionary
pd.DataFrame.from_dict(result)
edit
orient : {‘columns’, ‘index’}
The “orientation” of the data. If the keys of the passed dict should be the columns of the resulting DataFrame, pass ‘columns’ (default). Otherwise if the keys should be rows, pass ‘index’.
pd.DataFrame.from_dict(result,orient='columns')
Out:
Var1 Var2
0 2.0 2.0
1 2.0 2.0
2 2.0 2.0
3 2.0 0.0
4 2.0 2.0
5 2.0 2.0
6 2.0 2.0
7 2.0 0.0
8 2.0 2.0
9 2.0 2.0
10 2.0 2.0
11 2.0 0.0
12 0.0 2.0
13 0.0 2.0
14 0.0 2.0
15 0.0 0.0
If you want to use keys information of dictionary as index , you can use orientation of index
pd.DataFrame.from_dict(result,orient='index')
Out:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Var1 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 0.0 0.0 0.0 0.0
Var2 2.0 2.0 2.0 0.0 2.0 2.0 2.0 0.0 2.0 2.0 2.0 0.0 2.0 2.0 2.0 0.0
Upvotes: 4
Reputation: 8826
Answered are already rendered, But Just would like to make it to understand How it works.
While Constructing DataFrame
Example attributes(Parameters) it has..
DataFrame(data=None, index=None, columns=None, dtype=None,copy=False)
data
So, in your case it will be suitable to use parameter data
while building a dataframe from dict object ..
>>> pd.DataFrame(data=result)
Var1 Var2
0 2.0 2.0
1 2.0 2.0
2 2.0 2.0
3 2.0 0.0
4 2.0 2.0
5 2.0 2.0
6 2.0 2.0
7 2.0 0.0
8 2.0 2.0
9 2.0 2.0
10 2.0 2.0
11 2.0 0.0
12 0.0 2.0
13 0.0 2.0
14 0.0 2.0
15 0.0 0.0
OR
>>> pd.DataFrame.from_dict(result)
>>> pd.DataFrame.from_dict(result, orient='index') # Otherwise if the keys should be rows, pass 'index'
Upvotes: 0
Reputation: 57105
All you need is the default constructor:
pd.DataFrame(result)
# Var1 Var2
#0 2.0 2.0
#1 2.0 2.0
#....
Upvotes: 2