如何在python中对csv的一行应用数学运算?

2024-03-29 16:00:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经成功地用python创建函数并读/写文件。然而,对于某些行(如何应用这些列,函数不需要做任何事情。目标是:

  • 将csv或txt文件读入python(可以)
  • 查找一行数据并应用某些条件和操作
  • 对第二行数据执行相同的操作
  • 然后将行中的结果相互比较(用相似函数完成)
  • 将生成的数据打印到一个单独的文件中(简单易懂)

函数参数包括比率、和和和平方根的“if/then”条件——不包括整个函数。例如,只需使用sum

以下是我目前所掌握的(不多……):

import numpy as np
data = np.genfromtxt ('file_to_read.csv', 
                       dtype=float,
                       delimiter=",",
                       names=True)
np.sum()
print(data)
np.savetxt('test.csv', data, delimiter=',')

文件_读取.csv这是:

^{pr2}$

Tags: 文件csv数据函数txt目标datanp
1条回答
网友
1楼 · 发布于 2024-03-29 16:00:40

如果你能用矩阵(或转置矩阵)来处理数据。在

示例(熊猫):

原始数据框

In [162]: df
Out[162]:
   a  b  c
0  0  2  1
1  0  2  2
2  0  2  3
3  0  1  0
4  0  2  0
5  0  3  0
6  1  0  0
7  2  0  0
8  3  0  0

转置测向

^{pr2}$

选择b>0c>1的行:

In [166]: df[(df.b>0) & (df.c>1)]
Out[166]:
   a  b  c
1  0  2  2
2  0  2  3

现在计算每个找到的行的单元格总和:

In [167]: df[(df.b>0) & (df.c>1)].sum(axis=1)
Out[167]:
1    4
2    5
dtype: int64

或产品:

In [169]: df[(df.b>0) & (df.c>1)].product(axis=1)
Out[169]:
1    0
2    0
dtype: int64

PS using axis=1指示Pandas/Numpy使用行而不是列

相关问题 更多 >