3
我正在使用Facebook Insights API获取数据,并且我得到的数据中有嵌套的列。我尝试按索引分隔它们,但失败了。
要分割的列:
[{'action_type': 'link_click', 'value': '1'}, {'action_type': 'video_view', 'value': '1'}]
我要翻译的状态:
actions_video_view actions_link_click
1 1
xx = dataframe['actions'].apply(pd.Series).merge(dataframe["index"],
right_index=True,
left_index=True).melt(id_vars=['index'],
value_name='actions')
xx2 = xx['action_type'].apply(pd.Series).merge(xx["index"],
right_index=True,
left_index=True)
xx2 = xx2.loc[xx2['action_type'] == 'video_view', ["value", "index"]]
当我运行这段代码时,我得到以下错误:
Traceback (most recent call last):
File "C:ProgramDataAnaconda3libsite-packagespandascoreframe.py", line 3458, in __getitem__
indexer = self.columns.get_loc(key)
File "C:ProgramDataAnaconda3libsite-packagespandascoreindexesbase.py", line 3363, in get_loc
raise KeyError(key) from err
KeyError: 'action_type'
我想根据键分离列并将其添加为数据框列,我可以使用哪种方式?
在数据中显示的示例:
actions
[{'action_type': 'link_click', 'value': '1'}, {'action_type': 'video_view', 'value': '1'}]
[{'action_type': 'link_click', 'value': '3'}, {'action_type': 'video_view', 'value': '3'}]
[{'action_type': 'link_click', 'value': '5'}, {'action_type': 'video_view', 'value': '5'}]
[{'action_type': 'link_click', 'value': '6'}, {'action_type': 'video_view', 'value': '6'}]
[{'action_type': 'link_click', 'value': '7'}, {'action_type': 'video_view', 'value': '7'}]
如果我想应用:
actions_link_click actions_video_view
1 1
3 3
5 5
6 6
7 7
我认为您应该看看数据框的每一行是如何生成的。我认为这不是直截了当的。但对于你目前的问题,这里有一个解决方案:
import pandas as pd
import json
def convert_df(col):
tmp = col.apply(pd.Series)
out = (tmp.assign(idx=tmp.groupby('action_type').cumcount())
.pivot(index='idx', columns='action_type', values='value')
.add_prefix('actions_').rename_axis(columns=None).reset_index(drop=True))
return out
rows = [[{'action_type': 'link_click', 'value': '1'}, {'action_type': 'video_view', 'value': '1'}],
[{'action_type': 'link_click', 'value': '3'}, {'action_type': 'video_view', 'value': '3'}],
[{'action_type': 'link_click', 'value': '5'}, {'action_type': 'video_view', 'value': '5'}],
[{'action_type': 'link_click', 'value': '6'}, {'action_type': 'video_view', 'value': '6'}],
[{'action_type': 'link_click', 'value': '7'}, {'action_type': 'video_view', 'value': '7'}],]
df = pd.DataFrame({'actions' : rows})
df = pd.json_normalize(df['actions'])
df = pd.concat([
convert_df(df[0]),
convert_df(df[1])
], axis=1)
print(df)
actions_link_click actions_video_view
0 1 1
1 3 3
2 5 5
3 6 6
4 7 7
这就行了,
grouped_df = df.groupby("action_type")
new_df = pd.DataFrame([])
for action in df["action_type"].unique():
new_df[f"actions_{action}"] = list(grouped_df.get_group(action)["value"])
输出——
actions_video_view相关内容
- 没有找到相关文章
最新更新
- 如何将动画添加到可编写脚本的对象?
- 是春季安全ACL应该是可用的WebSecurityExpressionHandler?
- 在python中处理全局变量
- Cypress:代码进入无限循环,当满足条件时无法打破循环
- 如何在Django中使用本地SQLite3数据库进行测试和MSSQL数据库进行生产?
- 绘制没有插值的动画
- Javascript动画只占屏幕的一半
- Ansible - 模板字符串时列出比较问题:预期的令牌":",'}'
- ()->() 不能符合形状样式
- Oracle SYSDATE - 1/8是什么意思?
- 使用c#上传xml文件到Azure FTP文件夹
- 在多个钱包之间分配铸造资金 solana metaplex & candymachine
- 如果所有必填字段都以多页形式填写,如何显示"Next"按钮(WordPress + 强大的表单)
- Oauth2 客户端和开放 ID 连接 在 Flutter 中 - 授权代码授予类型
- Pandas:根据列中存在的字符串更改列的值
- 如何在python中从函数返回多个变量
- 坚固性:用华夫饼 + 柴测试还原的断言不起作用
- 如何在我的网站中显示或模拟用户网站的移动预览
- ReactJS在改变值时如何渲染
- ASP.. NET项目在IIS服务器上工作,但不能在本地主机上工作
- 呈现的钩子比预期的少.这可能是由于意外的提前返回语句引起的.基于状态的条件呈现组件
- 从Pandas数据框中删除行
- 如何在java中将ArrayList的输入<String>添加到嵌套数组列表中
- 屏幕在运行Flutter应用程序时卡住白色
- import mysql.connector ModuleNotFoundError: 没有名为'mysql'的模块
- 如何从Identity中获取名称
- HypRetrieve未检索到正确的状态代码
- 我可以"plain"使用具有永久链接设置的 REST API 吗?
- 为什么无法控制台.log使用反向顺序索引打印 [-1]
- 测试谷歌表插件触发器
热门标签:
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium