python - 如何提取在熊猫数据框中的字符串列表中编码的二维数组?
问题描述
我搞砸了一个数据框。我有一列包含对数字列表进行编码的字符串
例如
df=
mycol
0 '[ 0.5497076, 0.59722222, 0.42361111]'
1 '[ 0.8030303, 0.69090909, 0.52727273]'
2 '[ 0.51461988, 0.38194444, 0.66666667]'
编辑:实际上,逗号也不见了
df=
mycol
0 '[ 0.5497076 0.59722222 0.42361111]'
1 '[ 0.8030303 0.69090909 0.52727273]'
2 '[ 0.51461988 0.38194444 0.66666667]'
每个字符串编码一个具有固定数量元素的列表。我想将其转换mycol
为 3(通常为 N,其中N=len(df[mycol][0])
columns
每个为数字,包含 mycol 中原始列表中的一个元素
我尝试了以下方法,但没有成功
df[mycol]=df[mycol].apply(lambda s: s.split())
df[mycol]=df[mycol].apply(lambda s: np.fromstring(s))
df[['mycol1','mycol2','mycol3']] = pd.DataFrame(df[mycol].values.tolist(), index= df.index)
解决方案
这应该会有所帮助。
前任:
import pandas as pd
df = pd.DataFrame({"mycol": ['[ 0.5497076 0.59722222 0.42361111]', '[ 0.8030303 0.69090909 0.52727273]']})
df[['mycol1','mycol2','mycol3']] = df["mycol"].apply(lambda x: x.replace("[", "").replace("]", "").split()).apply(pd.Series)
print(df)
输出:
mycol mycol1 mycol2 mycol3
0 [ 0.5497076 0.59722222 0.42361111] 0.5497076 0.59722222 0.42361111
1 [ 0.8030303 0.69090909 0.52727273] 0.8030303 0.69090909 0.52727273
推荐阅读
- php - SQL/PHP 获取所有博客,但仅来自我的朋友
- merge - 如何更新或插入 DB2 中的同一张表
- php - 使用 jsPDF 和 PHP 将生成的 PDF 文件保存在服务器上
- python - 无法选择列表中的对象并将其删除
- java - Java 动态 Web 项目 index.html 在浏览器中打开时不显示任何内容
- c - FFMPEG remux 样本不写入文件
- php - PHP 日历的问题
- reactjs - 使用 React + Material UI Card Expander 扩展单个卡片
- python - Python - 计算一个条件后开始的值的平均值(例如,在另一列中的第一个非零之后)
- compilation - 如何在 Fedora 上为 openwrt 编译和运行二进制文件?