python - 来自 STRING 的 Python Pandas 方括号列表
问题描述
警告:我是 Python、Pandas 和 PySerial 的新手......
我正在使用 Pandas 从 Excel 电子表格中读取值。Excel 中的值存储为文本,但同时包含字母和数字字符。 见 Excel 数据片段
我使用 Pandas 命令mydata = pd.read_excel (*path etc goes here*)
<<< 导入这些(此功能没有遇到问题)
然后我可以使用print(mydata)
.... 打印它们,并且输出看起来与 Excel 电子表格中的输出相同(即,没有多余的字符):
0 MW000000007150000300000;
1 MW000100009850000200000;
2 MW000200009860000200000; #<<<<<<<< *Notice that there are NO square brackets and no extra Quotes*.
为了通过 PySerial 函数将这些数据发送serial.write
到我的 RS-232 链接设备,我正在循环遍历必须(据我所知......)采用LIST格式的值。因此,我使用命令将数据字段mydata
转换为LISTAllocation_list=mydata.values.tolist()
如果 I print(Allocation_list)
,我发现添加了许多方括号和单引号,如您在此处看到的:
Allocation_list =([['MW000000007150000300000;'], ['MW000100009850000200000;'], ['MW000200009860000200000;'], ['MW000300009870000200000;'], ['MW000400009880000200000;'], ['MW000500009890000200000;']])
当我将 LIST 中的值 <<serial.write>> 到我的 RS-232 设备时,这些方括号不会被忽略。
事实上,这些值被写成(二进制版本的......)
0 memory written as ['MW000000007150000300000;']
1 memory written as ['MW000100009850000200000;']
2 memory written as ['MW000200009860000200000;']
3 memory written as ['MW000300009870000200000;']
4 memory written as ['MW000400009880000200000;']
5 memory written as ['MW000500009890000200000;']
不幸的是,为了让 RS-232 设备接受写入它的每一行作为可接受的命令,它们必须采用该设备的精确命令格式,看起来像
MW000000007150000300000; <<<<< 分号是语法的必需部分
因此,必须以某种方式删除方括号和引号。
对这个特殊问题的任何帮助将不胜感激,因为我已经尝试了其他“线程”中描述的几种方法,但它们似乎都不能正常工作,因为我的数据字段是一组字符串(它们只转换为位,因为它们即将写入 RS-232 设备)。米
解决方案
即使你有一个只有一列的框架,也要避免这种情况:
l = df.values.tolist()
l
#outputs:
[[40], [10], [20], [10], [15], [30]]
为避免此问题,请在输出到列表时包含一列:
l = df['amount'].to_list()
l
#outputs:
[40, 10, 20, 10, 15, 30]
如果您想要一系列行,请使用 loc:
#put rows 3 to 5 (note the index starts at 0!) for only column 'amount' into a list
l = df.loc[2:4,'amount'].to_list()
l
#outputs:
[20, 10, 15]
在只有一列的框架上完整显示代码:
推荐阅读
- vb.net - 有没有更简单的方法来做到这一点?
- c# - Aspnet.Core Web API InvalidOperationException 中的 Okta 问题
- angular - 更新 Firebase 中的嵌套对象
- ios - 使用 PDF 矢量图像作为内容时模糊的 CALayer
- mysql - 当远程服务器出现故障时,如何防止我的网站崩溃?
- python - 在列表中部分匹配
- reactjs - 如何通过几何图形更新标记位置并平滑过渡?
- ibm-watson - 错误:参数错误:除非设置了 use_unauthenticated,否则需要用户名和密码
- symbols - 在未剥离库的 .init_array 部分中查找函数名称
- excel - 在VBA中用字母和数字格式化多个单元格