将 pandas 列下的字段从 str 转换为 dict 并创建新列

发布于 2025-01-10 20:20:14 字数 418 浏览 0 评论 0原文

我在名为 df 的数据帧中有一个名为 geo 的 pandas 列。它可以填充也可以不填充。

geo 有一个对象,引用一个地点的 ID。

我使用 df.iloc[18].geo 访问第 18 行,它返回:

"{'place_id': '1c37515518593fe3'}"

它是一个 str 类型。

我如何在 df 中创建一个名为 place_id 的新列来计算值(在我的示例中:1c37515518593fe3)?

I have a pandas column called geo inside a dataFrame called df. It can be populated or not.

geo has an object, referencing an id of a place.

I'm acessing row 18 using df.iloc[18].geo and it returns:

"{'place_id': '1c37515518593fe3'}"

its a str type.

How i can create a new column inside df called place_id countaining the value (on my example: 1c37515518593fe3) ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乱世争霸 2025-01-17 20:20:14

这篇文章应该可以帮助您将字符串文字转换为字典:
将字典的字符串表示形式转换为字典?< /a>

编辑更新可能的空值

import pandas as pd
import numpy as np
import ast

df = pd.DataFrame(data=["{'place_id': '1c37515518593fe3'}", np.NaN], columns=["geo"])
df["geo"] = df["geo"].apply(lambda x: ast.literal_eval(x) if not pd.isnull(x) else x)
df['place_id'] = df['geo'].apply(lambda x: x.get('place_id', np.NaN) if not pd.isnull(x) else x)
print(df)

                                geo          place_id
0  {'place_id': '1c37515518593fe3'}  1c37515518593fe3
1                               NaN               NaN

This post should help you convert string literals into dictionaries:
Convert a String representation of a Dictionary to a dictionary?

EDIT updated for possible null values

import pandas as pd
import numpy as np
import ast

df = pd.DataFrame(data=["{'place_id': '1c37515518593fe3'}", np.NaN], columns=["geo"])
df["geo"] = df["geo"].apply(lambda x: ast.literal_eval(x) if not pd.isnull(x) else x)
df['place_id'] = df['geo'].apply(lambda x: x.get('place_id', np.NaN) if not pd.isnull(x) else x)
print(df)

                                geo          place_id
0  {'place_id': '1c37515518593fe3'}  1c37515518593fe3
1                               NaN               NaN
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文