[英]How to apply math operations to a row of a csv in python?
我已經成功地在python中創建函數並讀取/寫入文件。 但是,我確實需要將某些函數應用於整個數據行 ( 而不是column ),並且找不到有關如何執行此操作的任何信息。 目標是:
函數參數包括比率,總和和平方根的“ 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=',')
file_to_read.csv是這樣的:
0,2,1
0,2,2
0,2,3
0,1,0
0,2,0
0,3,0
1,0,0
2,0,0
3,0,0
您可以轉置矩陣或數據框(如果使用熊貓)並處理列。
示例(熊貓):
原始DF
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
轉置DF
In [163]: df.T
Out[163]:
0 1 2 3 4 5 6 7 8
a 0 0 0 0 0 0 1 2 3
b 2 2 2 1 2 3 0 0 0
c 1 2 3 0 0 0 0 0 0
選擇b>0
和c>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
使用axis=1
PS指示Pandas / Numpy使用行而不是列
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.