【问题标题】:How do I use multiple data points from one Excel column in Python?如何在 Python 中使用一个 Excel 列中的多个数据点?
【发布时间】:2020-06-28 16:02:54
【问题描述】:

我在 python 中做一些图像处理,需要裁剪图像的一个区域。但是,我的像素坐标数据在一个用逗号分隔的excel列中排列为三个值,如下:

[1345.83,1738,44.26] (即 [x,y,r]) - 这正是它在excel单元格,方括号等等。

知道如何将其读入脚本并根据像素坐标值开始裁剪图像吗?有没有一个函数可以将它们分开,并将它们视为三个独立的值?

谢谢,罗德

【问题讨论】:

  • 字符串有一个内置的split 方法,它会根据传递的参数将字符串分成一个列表(例如"[1345.83,1738,44.26]".split(",") 给出一个列表[1345.83, 1738, 44.26]
  • 这在输入原始值时有效,但是我如何将其绑定到工作簿中? sheet.cell(row=2,column=14).split(",") 不起作用, sheet["N2"].split(",")
  • 这正是它在 excel 单元格、方括号等中的显示方式。 我有一段时间没有使用 Excel,是否整个被认为是一个字符串,或者某物?将它读入 Python 后会是什么样子?
  • 随时通过 Google Drive、Dropbox 或其他方式分享您的 Excel 电子表格。

标签: python image-processing deep-learning crop scikit-image


【解决方案1】:

我的理解是,如果你使用pandas.read_excel(),在这种情况下你会得到一列字符串。有很多选择,但我会在这里做,假设您的列名是 xyr:

# clean up strings to remove braces on either side
data['xyr_clean'] = data['xyr'].str.lstrip('[').str.rstrip(']')
data[['x', 'y', 'r']] = (
    data['xyr_clean'].str.split(', ', expand=True).astype(float)
)

要知道的关键是pandas 字符串列有一个.str 属性,其中包含所有或大部分Python 内置字符串方法的改编版本。然后你可以搜索“pandas convert string column to float”得到最后一位!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 2021-08-03
    • 2021-12-18
    相关资源
    最近更新 更多