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

标签 python excel dictionary pandas dataframe

我有以下数据框,它表示点对之间的“从-到”距离矩阵。我有预定的“行程”,这些“行程”访问我需要计算总距离的特定点对。

例如,

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/

相关文章:

vba - 通过下拉列表将数据从一张表导出到另一张表 - VBA Excel 宏

vba - 国际内部表名称

python - 从 Pandas 数据框中删除字典引用

arrays - 快速将数组序列化为对象

python - Pandas源码_get_grouper调用自身

python - 使用请求和 psycopg2 在 Postgres 中创建/插入 Json

python - 如何将给定的 Excel 文件转换为 Python 中的字典?

python - 有没有办法以相反的顺序打印字典?

python - 如何在不使用 glob (python3.4) 的情况下将文件的递归列表输出到文本文件

python - 您可以为 abspath 设置 cwd 吗?