如何从python数据框中检索和存储多个值?

时间:2015-12-14 01:35:44

标签: python excel dictionary pandas dataframe

我有以下Dataframe,表示点对之间的From-To距离矩阵。我有预定的"旅行"访问我需要计算总距离的特定点对。

例如,

  

跳闸1 = [A:B] + [B:C] + [B:D] = 6 + 5 + 8 = 19

     

跳闸2 = [A:D] + [B:E] + [C:E] = 6 + 15 + 3 = 24

import pandas

graph = {'A': {'A': 0, 'B': 6, 'C': 10, 'D': 6, 'E': 7},
         'B': {'A': 10, 'B': 0, 'C': 5, 'D': 8, 'E': 15},
         'C': {'A': 40, 'B': 30, 'C': 0, 'D': 9, 'E': 3}}        
df = pd.DataFrame(graph).T  
df.to_excel('file.xls')

我有很多"旅行"我需要重复此过程,然后需要将值存储在我可以导出到excel的新Dataframe中。我知道我可以使用df.at [A,' B']来检索Dataframe中的特定值,但是如何检索多个值,求和,存储在新的Dataframe中,然后重复进行enxt行程。

提前感谢您提供任何帮助或指导,

1 个答案:

答案 0 :(得分:1)

我认为如果你不进行转置,那么可能会有一个不受影响的人吗?

import pandas as pd

graph = {'A': {'A': 0, 'B': 6, 'C': 10, 'D': 6, 'E': 7},
         'B': {'A': 10, 'B': 0, 'C': 5, 'D': 8, 'E': 15},
         'C': {'A': 40, 'B': 30, 'C': 0, 'D': 9, 'E': 3}}        
df = pd.DataFrame(graph)
df = df.unstack()
df.index.names = ['start','finish']


# a list of tuples to represent the trip(s)
trip1 = [('A','B'),('B','C'),('B','D')]
trip2 = [('A','D'),('B','E'),('C','E')]
trips = [trip1,trip2]

my_trips = {}
for trip in trips:
    my_trips[str(trip)] = df.loc[trip].sum()

distance_df =  pd.DataFrame(my_trips,index=['distance']).T

distance_df

                                        distance
[('A', 'B'), ('B', 'C'), ('B', 'D')]    19
[('A', 'D'), ('B', 'E'), ('C', 'E')]    24