I want to create a customised pandas DataFrame from items in dictionary. For example I can convert a dictionary to a DataFrame using pandas' from_dict()
function:
data = {'wordA': [3, 2, 1, 0], 'wordB': [33, 12, 1, 8], 'wordC': [54, 10, 7, 3]}
pd.DataFrame.from_dict(data, orient='index', columns=['col1', 'col2', 'col3', 'col4'])
To produce a DataFrame such as below:
col1 col2 col3 col4
wordA 3 2 1 0
wordB 33 12 1 8
wordC 54 10 7 3
However what I want is to have only 2 columns, such as below, where the word column returns the dictionary keys and count column returns a count of the dictionary values contained in the list.
word count
wordA 4
wordB 4
wordC 4
How can I achieve this?
CodePudding user response:
You could change the dictionary that you pass to the constructor:
out = pd.DataFrame.from_dict({i: {'word': k, 'count': len(v)}
for i, (k, v) in enumerate(data.items())},
orient='index')
or
out = (pd.DataFrame.from_dict({'count': {k: len(v) for k, v in data.items()}})
.rename_axis('word').reset_index())
Output:
word count
0 wordA 4
1 wordB 4
2 wordC 4