我想知道是否有任何方法可以使用其索引ID获取每列中的最小值而不使用聚合方法(df.agg([' min',' idmin'])。T)这段代码?!!
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
答案 0 :(得分:3)
从头开始构建DataFrame:
pd.DataFrame({'min': df.min(), 'idxmin': df.idxmin()})
min idxmin
A -1.106929 2013-01-03
B -0.642583 2013-01-06
C -1.350638 2013-01-04
D -0.213750 2013-01-06
或连续两个系列:
pd.concat((df.min(), df.idxmin()), axis=1).rename(columns={0: 'min', 1: 'idxmin'})
Out:
min idxmin
A -1.106929 2013-01-03
B -0.642583 2013-01-06
C -1.350638 2013-01-04
D -0.213750 2013-01-06
答案 1 :(得分:1)
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
def minVal(x):
return pd.Series(index=['min','idx'],data=[x.min(),x.idxmin()])
x = df.apply(minVal)
print(x)
A B C D
min -0.743023394642 -1.05144770539 -2.1311363065 -1.02142276427
idx 2013-01-05 00:00:00 2013-01-04 00:00:00 2013-01-03 00:00:00 2013-01-06 00:00:00
您还可以执行x的转置以获取数据的要点。
print(x.T)
min idx
A -0.657701 2013-01-05 00:00:00
B -1.37038 2013-01-03 00:00:00
C -1.93103 2013-01-03 00:00:00
D -1.49314 2013-01-05 00:00:00