4 回答
TA贡献1829条经验 获得超7个赞
用于pandas读取您的 Excel 文件。
正如对原始问题的评论中所建议的,这里是一个如何使用pandas读取 Excel 文件的快速示例,以及一个数据结构示例。
有任何问题,请随时喊叫,或查看文档。
import pandas as pd
# My path looks a little different as I'm on Linux.
path = '~/Desktop/so/MyImages.xlsx'
df = pd.read_excel(path)
数据结构
这完全是人为的,因为我没有您的实际文件的示例。
IMAGE_NAME FEATURE_1 FEATURE_2 FEATURE_3
0 100304.jpg 0.0111 0.111 1.111
1 100305.jpg 0.0222 0.222 2.222
2 100306.jpg 0.0333 0.333 3.333
希望这有助于您入门。
建议:
当您遇到小数(数据类型)问题时,Excel 喜欢认为它很聪明并且会做“意想不到的”事情。 也许考虑将您的图像数据存储在数据库 (SQLite) 中或作为普通的旧 CSV 文件。 熊猫也可以从其中任何一个中读取!:-)
TA贡献1946条经验 获得超4个赞
splitOn = '.'
nameOfFile = text.split(splitOn, 1)[0]
应该管用
如果我们取您的文件名,例如 12345.0 并创建一个 var
name = "12345.0"
现在我们需要拆分这个变量。在这种情况下,我们希望拆分. 所以我们将此条件保存为第二个 var
splitOn = '.'
将 .split 用于 python。在这里,我们提供文本(变量名)和 python split 命令。所以让它字面意思
12345.0
split at .
only make one split and save as two vars in a list
(so we have 12345 at position 0 (1st value)
and 0 at position 1 (2nd value) in a list)
save 1st var
(as all lists are 0 based we ask for [0]
(if you ever get confused with list, arrays etc just start counting
from 0 instead of one on your hands and then you know
ie position 0 1 2 3 4 = 1st value, 2nd value, 3rd value, 4th value, 5th value)
nameOfFile = name.split(splitOn, 1)[0]
12345.0 split ( split on . , only one split ) save position 0 ie first value
所以.....
name = 12345.0
splitOn = '.'
nameOfFile = name.split(splitOn, 1)[0]
yield(nameOfFile)
输出将是
12345
我希望这有助于 https://www.geeksforgeeks.org/python-string-split/
或者
如下所示,转换为浮动到 https://www.geeksforgeeks.org/type-conversion-python/
如果保存为浮点数
name 12345.0
newName = round(int(name))
这将使浮点数四舍五入(因为它的 0 将向下舍入)
或者如果 float 保存为字符串
print(int(float(name)))
TA贡献1835条经验 获得超7个赞
如果总是在变量末尾添加“.0”,则需要以这种方式读取 var_string“name”:
shutil.move(imageLocBase + "/" + name[:-2], folderPath)
字符串就像一个列表,我们可以选择要读取的元素。切片就是用这种方法
对不起我的英语不好。再见
TA贡献1963条经验 获得超6个赞
显然,您从电子表格中检索的值被解析为浮点数,因此当您将其转换为字符串时,它会保留小数部分。
您可以从字符串值中修剪“.0”,或者在转换为字符串之前将其转换为整数。
您还可以检查电子表格的单元格格式并确保其设置为正常(idk 设置,但不是数字)。修复后,您的数据可能不再随 .0 提供。
添加回答
举报