python - 如何使用 pandas 将 API 中的数据拆分为行和列?

标签 python pandas api dataframe formatting

我有来自 API 的数据,格式如下:

PublicAssistanceFundedProjectsSummaries

0  [{'disasterNumber': 1239, 'declarationDate': '...

我希望它采用以下格式:

disasterNumber        declarationDate     etc.       etc. 
1239                  11/21/2001          XYZ.       XYZ

我该如何解决这个问题?我当前的代码如下所示:

g = requests.get('https://www.fema.gov/api/open/v1/PublicAssistanceFundedProjectsSummaries?get=PublicAssistanceFundedProjectsSummaries').json()
df_g = json_normalize(g)
df_g2 = df_g.drop(df_g.columns[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]], axis=1)

抱歉,我对编码很陌生。

最佳答案

您已经很接近了,只需指定 PublicAssistanceFundedProjectsSummaries 键:

df = json_normalize(g, 'PublicAssistanceFundedProjectsSummaries')

或者:

df = json_normalize(g['PublicAssistanceFundedProjectsSummaries'])
<小时/>
print (df.head())
   disasterNumber           declarationDate     incidentType           state  \
0            1239  1998-08-26T00:00:00.000Z  Severe Storm(s)           Texas   
1            1240  1998-08-27T00:00:00.000Z        Hurricane  North Carolina   
2            1240  1998-08-27T00:00:00.000Z        Hurricane  North Carolina   
3            1240  1998-08-27T00:00:00.000Z        Hurricane  North Carolina   
4            1240  1998-08-27T00:00:00.000Z        Hurricane  North Carolina   

      county                        applicantName  educationApplicant  \
0  Val Verde               UNITED MEDICAL CENTERS               False   
1        NaN  ATLANTIC TELEPHONE MEMBERSHIP CORP.               False   
2        NaN              CARTERET COUNTY SCHOOLS                True   
3        NaN                 CEDAR POINT, TOWN OF               False   
4        NaN                      AURORA, TOWN OF               False   

   numberOfProjects  federalObligatedAmount                              hash  \
0                 1                12028.63  5d10528e4d343d96061da8816465e64b   
1                 1                30956.35  4aad896727265f6e5948a76e7977f57e   
2                 4              1288255.25  eb55e580a33cd4d97fa8fd1f0d71294d   
3                 1                 4125.00  e8ed9d023142825fa658ef7b5ae4729a   
4                 6                22810.25  23684ce3b4d27bc7561c39b024c3a05d   

                lastRefresh                        id  
0  2019-10-18T14:06:56.673Z  5da9c7005164620fcb0213ca  
1  2019-10-18T14:06:56.676Z  5da9c7005164620fcb0213dd  
2  2019-10-18T14:06:56.680Z  5da9c7005164620fcb0213f4  
3  2019-10-18T14:06:56.680Z  5da9c7005164620fcb0213f8  
4  2019-10-18T14:06:56.676Z  5da9c7005164620fcb0213da  

关于python - 如何使用 pandas 将 API 中的数据拆分为行和列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59881102/

相关文章:

python - Paramiko 无法下载大于 1GB 的大文件

python - 如何设计插件架构,其中插件填充网页的不同部分?

python - 无法在终端中使用 pip 或 easy_install 在 Mac 上安装

python - 如何在新图像上使用 .predict_generator() - Keras

python-3.x - Trello API/Python - 无法设置卡片的自定义字段值

api - 是否有用于 Amazon Web Services 定价的 API?

python - 验证字符串不包含用于格式化的大括号

python-3.x - Pandas Groupby 与 Group Concat 用于整数值

python - 如何将月份和年份放在 Python Pandas 的同一列中

java - 如何使用 java 的 SoundCloud api 包装器更新播放列表