python - 创建df列作为行的json
问题描述
我有下面的代码,它遍历 df 并创建一个带有其他列new
的 dict 的附加列。有没有更好的方法来实现这一点而不使用 iterrows?我的实际数据集要大得多,并且遍历行并不高效。
代码
import pandas as pd
import json
data = {'Name':['Tom', 'Nick', 'Jim', 'John'],
'Age':[20, 21, 35, 11]}
df = pd.DataFrame(data)
for i, row in df.iterrows():
df.loc[i, 'new'] = json.dumps(row.to_dict())
print(df)
输出
Name Age new
0 Tom 20 {"Name": "Tom", "Age": 20}
1 Nick 21 {"Name": "Nick", "Age": 21}
2 Jim 35 {"Name": "Jim", "Age": 35}
3 John 11 {"Name": "John", "Age": 11}
解决方案
你可以df.to_dict
试试df.join
out = df.join(pd.Series(df.to_dict('records'),index=df.index,name='new'))
print(out)
Name Age new
0 Tom 20 {'Name': 'Tom', 'Age': 20}
1 Nick 21 {'Name': 'Nick', 'Age': 21}
2 Jim 35 {'Name': 'Jim', 'Age': 35}
3 John 11 {'Name': 'John', 'Age': 11}
推荐阅读
- postgresql - 同一查询 postgresql/jpa 中的不同结果
- java - 如何动态设置类的通用参数?
- python - 从数据框行创建数组
- javascript - 单击内部链接/按钮时取消/防止 Bootstrap5 崩溃
- python - 关于 PyFlink 使用 execute_sql 选择表并使用 table.print() 的问题
- azure - Azure DevOps Release Pipelines 已停止无法下载工件
- docker - 我在 Nexus 3 中找不到 jetty-https.xml
- reactjs - 我收到一个奇怪的警告“React hook useEffect 缺少依赖项”
- sap-cloud-sdk - 如何在 Sap Cloud Sdk 中为 javacript 项目调用 Soap Web 服务
- python - 使用 python3 并连接到 sqlite3 我想显示我的数据库中的表,“。” 在“.tables”中不断给出错误,“\”没有帮助