Python:在Pandas中按行评估

时间:2019-04-10 16:01:21

标签: python-3.x pandas

我正试图从excel(.xls)文件中提取数据,并且我决定将Pandas作为库使用,因为在公司计算机上允许使用它。

我所遇到的大多数描述Pandas的信息都是针对使用Jupyter或Anaconda生态系统而设计的,我很难将方法转换为传统的python脚本。

这是我正在测试的表的示例:

        Date    a   b   c
1   1-Jan-19    100 200 300
2   1-Feb-19    101 201 301
3   1-Mar-19    102 202 302
4   1-Apr-19    103 203 303
5   1-May-19    104 204 304
6   1-Jun-19    105 205 305
7   1-Jul-19    106 206 306
8   1-Jul-19    107 207 307
9   1-Aug-19    108 208 308
10  1-Sep-19    109 209 309

我的目标是获取日期最长的行(即今天),并将该行中的所有信息作为字典或JSON进行评估,例如

{ 
Date: 1-Sep-19,
a: 109,
b: 209,
c: 309 
}

(我不在乎“索引”列)

我坚持尝试评估最后一行。这是我到目前为止的内容:

import pandas as pd

xls = pd.ExcelFile(r'C:\Path\Excel Pandas Connector Test.xls')
df = pd.read_excel(xls, r'Sheet1')

today = df['Date'].max()     # returns the max value in the date column

print(today)

我已经找到了最大日期,但是要使用该日期从该表中获取最新数据,我该怎么办?

1 个答案:

答案 0 :(得分:1)

就做

df[df.Date == date.Date.max()].to_dict(orient='records')[0]

这只是选择Date列中具有最大值的数据帧的行,然后将结果转换为字典列表,每一行对应一个。

根据您的问题,我假设您只有一个最新日期的条目,因此可以通过选择列表中的第一个条目来解决问题。请注意重复的日期,因为这会选择出现在数据框中的第一个日期。

希望有帮助