python - Python - 将值附加到列表列表中的每个子列表
问题描述
我有一些长数据集,我试图用 numpy 读取,并在每一行附加一个值,然后输出为 CSV。最终目标是从同一个文件中拆分多个测量值,因此我需要一些方法来标记每个测量值。我想出了这个:
def csv_test(data_file):
data_nd = np.genfromtxt(str(data_file),
delimiter=";",
usecols=(-3, -2, -1),
dtype=None)
data = np.ndarray.tolist(data_nd)
output = []
sub_output = []
sub1 = str(1)
for i in data:
sub_output.append(i)
sub_output.extend(sub1)
output.append(sub_output)
print(output)
x_val = 1
x_string = str(x_val)
filename_out = str("temp_" + x_string + ".csv")
with open(filename_out, "w") as f:
writer = csv.writer(f)
for sublist in output:
writer.writerows(sublist)
问题是我的输出如下所示:
[[[0.0, -0.051, -1.525651e-07], '1', ...
不喜欢
[[[0.0, -0.051, -1.525651e-07, '1'] ...
因此,在 CSV 写入步骤中,附加值换行。如何让它附加到列表中的子列表?
样本数据:
0;0.000000;-0.050;-6.900140e-008
0;0.100000;-0.050;-6.843410e-008
0;0.200000;-0.050;-6.778820e-008
0;0.300000;-0.050;-6.654330e-008
0;0.400000;-0.050;-6.598800e-008
0;0.500000;-0.050;-6.497330e-008
0;0.600000;-0.050;-6.415210e-008
0;0.700000;-0.050;-6.349080e-008
0;0.800000;-0.050;-6.181810e-008
0;0.900000;-0.050;-6.148080e-008
0;1.000000;-0.050;-6.032090e-008
解决方案
问题是你应该附加str(1)
to i
,而不是sub_output
:
for i in data:
sub_output.append(i + [sub1])
# sub_output.extend(sub1) <-- you don't need this line.
注意我们没有i.append(sub1)
因为append()
方法返回None
。您想要完整列表+的i
单项附加到您的.list
sub1
sub_output
推荐阅读
- python - Python解释器抱怨在当前进程完成引导阶段之前尝试启动新进程
- sql-server - 使用 group by 根据最大其他列获取顶部列?
- c++ - 有没有办法使用 C++ 实时阅读文本?
- laravel - 如何在控制器之间创建验证码会话
- python - python pandas:将字典转换为长格式,计数基于字符串变量的不同值
- c# - 在 C# 中指向或反射到对象
- python - 使用 matplotlib 制作堆栈图时出现“Keyerror”
- ios - 未调用具有 Firebase 消息回调的 Flutter 插件
- yocto - 构建 gcc-cross 失败,没有提供“gcc-cross”
- python - 如何从python中的列表中计算单词列表