当从DF列中选择最大值时,有没有办法返回一个标准的python对象?
测试代码:
import pandas as pd
df = pd.DataFrame({"A": [1,2,3,4], "Date": ['2010-01-01 00:00:01', '2010-02-01 00:00:01', '2019-01-01 00:00:01', '2010-01-01 00:00:01']})
df['Date']= pd.to_datetime(df['Date'])
测试1:
type(df["Date"].max())
pandas._libs.tslibs.timestamps.Timestamp
测试2:
type(df["A"].max())
numpy.dtype[int64]
理想情况下,我希望有一个函数,可以将DF和列名传递给它,并在python标准对象中获取最大值,而不必执行大量if类型的==样式语句。
Pesudo-code理念:
def find_max(df, col):
max_val = df[col].max()
max_val.into_python_type()
return max_val
x = find_max(df, 'Date')
type(x)
datetime.datetime
x = find_max(df, 'A')
type(x)
int
编辑
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 A 4 non-null int64
1 Date 4 non-null datetime64[ns]
dtypes: datetime64[ns](1), int64(1)
memory usage: 192.0 bytes
pd. __version__
'1.2.4'
Python 3.9.4
发布于 2021-06-24 09:16:47
用评论中的一些想法解决了这个问题:
def _get_max_val(self, df, param_name):
try:
max = df[param_name].max().tolist()
except AttributeError:
max = str(df[param_name].max())
return max
给了我我需要的
https://stackoverflow.com/questions/68096710
复制