MoneyBall
MoneyBall

Reputation: 2563

Adding tuple indexes on python panda

"""
Example of using Panda
"""
from pandas import DataFrame
d=DataFrame(index=[(i,j) for i in range(1,7) for j in range (1,7)], columns=['sm','d1', 'd2', 'pd1', 'pd2', 'p'])
d.d1=[i[0] for i in d.index]
d.d2=[i[1] for i in d.index]

d.sm = map(sum, d.index)

d.head(20)

I'm a beginner in pandas, and I am trying to create a column of sum of tuples, but this is what I get:

                  sm          d1 d2

(1,1) < map object at 0x7f...7438 > | 1 | 1 |

(1,2) < map object at 0x7f...7438 > | 1 | 2 |

(1,3) < map object at 0x7f...7438 > | 1 | 3 |

(1,4) < map object at 0x7f...7438 > | 1 | 4 |

(1,5) < map object at 0x7f...7438 > | 1 | 5 |

Am I using the map function wrong? Is this python3 issue? Thanks in advance.

Upvotes: 3

Views: 86

Answers (1)

MaxU - stand with Ukraine
MaxU - stand with Ukraine

Reputation: 210852

IIUC:

In [309]: d['sm'] = d.index.map(np.sum)

In [310]: d
Out[310]:
        sm  d1  d2  pd1  pd2    p
(1, 1)   2   1   1  NaN  NaN  NaN
(1, 2)   3   1   2  NaN  NaN  NaN
(1, 3)   4   1   3  NaN  NaN  NaN
(1, 4)   5   1   4  NaN  NaN  NaN
(1, 5)   6   1   5  NaN  NaN  NaN
(1, 6)   7   1   6  NaN  NaN  NaN
(2, 1)   3   2   1  NaN  NaN  NaN
(2, 2)   4   2   2  NaN  NaN  NaN
(2, 3)   5   2   3  NaN  NaN  NaN
(2, 4)   6   2   4  NaN  NaN  NaN
(2, 5)   7   2   5  NaN  NaN  NaN
(2, 6)   8   2   6  NaN  NaN  NaN
(3, 1)   4   3   1  NaN  NaN  NaN
(3, 2)   5   3   2  NaN  NaN  NaN
(3, 3)   6   3   3  NaN  NaN  NaN
(3, 4)   7   3   4  NaN  NaN  NaN
(3, 5)   8   3   5  NaN  NaN  NaN
(3, 6)   9   3   6  NaN  NaN  NaN
(4, 1)   5   4   1  NaN  NaN  NaN
(4, 2)   6   4   2  NaN  NaN  NaN
(4, 3)   7   4   3  NaN  NaN  NaN
(4, 4)   8   4   4  NaN  NaN  NaN
(4, 5)   9   4   5  NaN  NaN  NaN
(4, 6)  10   4   6  NaN  NaN  NaN
(5, 1)   6   5   1  NaN  NaN  NaN
(5, 2)   7   5   2  NaN  NaN  NaN
(5, 3)   8   5   3  NaN  NaN  NaN
(5, 4)   9   5   4  NaN  NaN  NaN
(5, 5)  10   5   5  NaN  NaN  NaN
(5, 6)  11   5   6  NaN  NaN  NaN
(6, 1)   7   6   1  NaN  NaN  NaN
(6, 2)   8   6   2  NaN  NaN  NaN
(6, 3)   9   6   3  NaN  NaN  NaN
(6, 4)  10   6   4  NaN  NaN  NaN
(6, 5)  11   6   5  NaN  NaN  NaN
(6, 6)  12   6   6  NaN  NaN  NaN

Upvotes: 1

Related Questions