Issue
I have the following pandas DF
data
day 2021-09-30
value1 730716000
value2 974689000
value3 375689000
value4 369077000
How can I convert this DF to json to be like:
{
"day": "2021-09-30",
"value1": 702228000,
"value2": 924465000,
"value3": 309753000,
"value4": 306252
}
My best try was:
df.columns = range(df.shape[1]) # Delete headers
print(df.to_json(orient='index', indent=2))
But I got this output:
{
"day":{
"0":"2021-09-30"
},
"value1":{
"0":"730716000"
},
"value2":{
"0":"974689000"
},
"value3":{
"0":"375689000"
},
"value4":{
"0":"369077000"
}
}
Bonus Doubt: Is it possible to parse only the values 1,2,3 and 4 of column data to int?
Solution
The first approach is to squeeze
your dataframe before use to_json
>>> print(df.squeeze().to_json(indent=4))
{
"day":"2021-09-30",
"value1":"730716000",
"value2":"974689000",
"value3":"375689000",
"value4":"369077000"
}
Note: squeeze
only works here because you have a DataFrame
with a single column.
For the bonus, use a different strategy
import json
data = json.dumps({k: int(v) if v.isdigit() else v
for k, v in df.squeeze().to_dict().items()}, indent=2)
print(data)
# Output
{
"day": "2021-09-30",
"value1": 730716000,
"value2": 974689000,
"value3": 375689000,
"value4": 369077000
}
Answered By - Corralien
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.