我有以下数据框,它表示点对之间的“从-到”距离矩阵。我有预定的“行程”,这些“行程”访问我需要计算总距离的特定点对。
例如,
Trip 1 = [A:B] + [B:C] + [B:D] = 6 + 5 + 8 = 19
Trip 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 的新数据框中的一行中。我知道我可以使用 df.at[A,'B'] 检索 Dataframe 中的特定值,但如何检索多个值,对它们求和,存储在新的 Dataframe 中,然后重复下一次旅行。
预先感谢您的任何帮助或指导,
最佳答案
我认为如果你不转置那么也许 unstack 会有所帮助?
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
关于python - 如何从 python 数据框中检索和存储多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34258536/