Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Game1 Game2 Game3 Game4 Game5
- Player1 2 6 5 2 2
- Player2 6 4 1 8 4
- Player3 8 3 2 1 5
- Player4 4 9 4 7 9
- import csv
- f=open('Games','rb')
- f=csv.reader(f,delimiter=';')
- lst=list(f)
- lst
- import numpy as np
- myarray = np.asarray(lst)
- x=myarray[1,1:] #First player
- y=np.sum(x)
- import pandas as pd
- df = pd.read_csv('/path/to.file.csv', sep=';')
- In [196]: df
- Out[196]:
- Game1 Game2 Game3 Game4 Game5
- Player1 2 6 5 2 2
- Player2 6 4 1 8 4
- Player3 8 3 2 1 5
- Player4 4 9 4 7 9
- In [197]: df.sum(axis=1)
- Out[197]:
- Player1 17
- Player2 23
- Player3 19
- Player4 33
- dtype: int64
- In [198]: df.sum(1).values
- Out[198]: array([17, 23, 19, 33], dtype=int64)
- >>> import numpy as np
- >>> a = np.array([(1,2), (4,5)], dtype=[('Game 1', '<f8'), ('Game 2', '<f8')])
- >>> a.sum()
- TypeError: cannot perform reduce with flexible type
- >>> import numpy as np
- >>> a = np.array([(1,2), (4,5)], dtype=[('Game 1', '<f8'), ('Game 2', '<f8')])
- >>> a["Game 1"].sum()
- 5.0
- import csv
- ## Data-file
- data =
- '''
- , Game1, Game2, Game3, Game4, Game5
- Player1, 2, 6, 5, 2, 2
- Player2, 6, 4 , 1, 8, 4
- Player3, 8, 3 , 2, 1, 5
- Player4, 4, 9 , 4, 7, 9
- '''
- # Write data to file
- with open('data.csv', 'w') as FILE:
- FILE.write(data)
- print("Raw data:")
- print(data)
- # 1) Read the data-file (and strip away spaces), the result is data by column:
- with open('data.csv','rb') as FILE:
- raw = [ [ item.strip() for item in line]
- for line in list(csv.reader(FILE,delimiter=',')) if line]
- print("Data after Read:")
- print(raw)
- # 2) Convert numerical data to integers ("float" would also work)
- for (i, line) in enumerate(raw[1:], 1):
- for (j, item) in enumerate(line[1:], 1):
- raw[i][j] = int(item)
- print("Data after conversion:")
- print(raw)
- # 3) Use the data...
- print("Use the data")
- for i in range(1, len(raw)):
- print("Sum for Player %d: %d" %(i, sum(raw[i][1:])) )
- for i in range(1, len(raw)):
- print("Total points in Game %d: %d" %(i, sum(list(zip(*raw))[i][1:])) )
- Raw data:
- , Game1, Game2, Game3, Game4, Game5
- Player1, 2, 6, 5, 2, 2
- Player2, 6, 4 , 1, 8, 4
- Player3, 8, 3 , 2, 1, 5
- Player4, 4, 9 , 4, 7, 9
- Data after Read:
- [['', 'Game1', 'Game2', 'Game3', 'Game4', 'Game5'], ['Player1', '2', '6', '5', '2', '2'], ['Player2', '6', '4', '1', '8', '4'], ['Player3', '8', '3', '2', '1', '5'], ['Player4', '4', '9', '4', '7', '9']]
- Data after conversion:
- [['', 'Game1', 'Game2', 'Game3', 'Game4', 'Game5'], ['Player1', 2, 6, 5, 2, 2], ['Player2', 6, 4, 1, 8, 4], ['Player3', 8, 3, 2, 1, 5], ['Player4', 4, 9, 4, 7, 9]]
- Use the data
- Sum for Player 1: 17
- Sum for Player 2: 23
- Sum for Player 3: 19
- Sum for Player 4: 33
- Total points in Game 1: 20
- Total points in Game 2: 22
- Total points in Game 3: 12
- Total points in Game 4: 18
- dt = [('Game1', '<i4'), ('Game2', '<i4'), ('Game3', '<i4'),
- ('Game4', '<i4'), ('Game5', '<i4')]
- a = np.array([(2, 6, 5, 2, 2),
- (6, 4, 1, 8, 4),
- (8, 3, 2, 1, 5),
- (4, 9, 4, 7, 9)], dtype= dt)
- nms = a.dtype.names
- by_col = [(i, a[i].sum()) for i in nms if a[i].dtype.kind in ('i', 'f')]
- by_col
- [('Game1', 20), ('Game2', 22), ('Game3', 12), ('Game4', 18), ('Game5', 20)]
- by_row = [("player {}".format(i), sum(a[i])) for i in range(a.shape[0])]
- by_row
- [('player 0', 17), ('player 1', 23), ('player 2', 19), ('player 3', 33)]
- a[0].sum() # massive failure
- ....snip out huge error stuff...
- TypeError: cannot perform reduce with flexible type
- # whereas, this works....
- sum(a[0]) # use list/tuple summation
- b = np.array([list(a[i]) for i in range(a.shape[0])])
- b
- array([[2, 6, 5, 2, 2],
- [6, 4, 1, 8, 4],
- [8, 3, 2, 1, 5],
- [4, 9, 4, 7, 9]])
- b.sum(axis=0)
- array([20, 22, 12, 18, 20])
- b.sum(axis=1)
- array([17, 23, 19, 33])
- b = a.view(np.int32).reshape(len(a), -1)
- b
- array([[2, 6, 5, 2, 2],
- [6, 4, 1, 8, 4],
- [8, 3, 2, 1, 5],
- [4, 9, 4, 7, 9]])
- b.dtype
- dtype('int32')
- b.sum(axis=0)
- array([20, 22, 12, 18, 20])
- b.sum(axis=1)
- array([17, 23, 19, 33])
- import csv
- from collections import OrderedDict
- with open('games') as f:
- reader = csv.reader(f, delimiter=';')
- data = list(reader)
- sums = OrderedDict()
- for row in data[1:]:
- player, games = row[0], row[1:]
- sums[player] = sum(map(int, games))
Add Comment
Please, Sign In to add comment