我有一个DataFrame
A B C D
2015-07-18 4.534390e+05 2.990611e+05 5.706540e+05 4.554383e+05
2015-07-22 3.991351e+05 2.606576e+05 3.876394e+05 4.019723e+05
2015-08-07 1.085791e+05 8.215599e+04 1.356295e+05 1.096541e+05
2015-08-19 1.397305e+06 8.681048e+05 1.672141e+06 1.403100e+06
...
Run Code Online (Sandbox Code Playgroud)
我只想总结所有列以获得新的数据帧
A B C D
sum s s s s
Run Code Online (Sandbox Code Playgroud)
使用列式和然后打印它to_csv().何时使用
df.sum(axis=0)
print(df)
A 9.099377e+06
B 5.897003e+06
C 1.049932e+07
D 9.208681e+06
dtype: float64
Run Code Online (Sandbox Code Playgroud) 我有一个带有DatetimeIndex的Pandas DataFrame和一列MSE Loss
索引的格式如下:
DatetimeIndex(['2015-07-16 07:14:41', '2015-07-16 07:14:48',
'2015-07-16 07:14:54', '2015-07-16 07:15:01',
'2015-07-16 07:15:07', '2015-07-16 07:15:14',...]
Run Code Online (Sandbox Code Playgroud)
它包括几天.
我想要选择特定日期的所有行(所有时间),而不是特别知道实际的时间间隔.例如:在2015-07-16 07:00:00和之间2015-07-16 23:00:00
我尝试了这里概述的方法:这里
但 df[date_from:date_to]
输出:
KeyError: Timestamp('2015-07-16 07:00:00')
Run Code Online (Sandbox Code Playgroud)
所以它想要精确的指数.此外,我没有date专栏.只有带日期的索引.
通过提供日期来选择一整天的最佳方式是什么2015-07-16,然后我如何在特定日期内选择特定的时间范围?
我想使用 *args 对 Pandas DataFrame 的行数据应用函数。可以这样完成(检索最大行的玩具示例):
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
def f(*args):
cols = [c for c in args]
return max(cols)
m = list(map(f,df['A'],df['B'],df['C'],df['D']))
Run Code Online (Sandbox Code Playgroud)
有没有办法以这种方式做到这一点,而不必单独列出所有列?例如,当数据帧具有在运行时定义的任意列时。
找到最大值也可以用更简单的方法来完成,但是如何将任意函数应用于行(如果 *args 不可能)
我有一个pandas DataFrame DateTimeIndex:
A B
2016-04-25 18:50:06 440.967796 201.049600
2016-04-25 18:50:13 441.054995 200.767034
2016-04-25 18:50:20 441.142337 200.484475
...
2016-07-27 18:50:06 440.967796 201.049600
2016-07-27 18:50:13 441.054995 200.767034
2016-07-27 18:50:20 441.142337 200.484475
Run Code Online (Sandbox Code Playgroud)
我想yyyy-mm-dd使用日期列表提取给定日期的所有数据:['2016-04-25','2016-04-28',...]
我尝试了以下方法:
df[df.index.isin(['2016-04-25', '2016-04-26'])]
Empty DataFrame
Run Code Online (Sandbox Code Playgroud)
我想检索此列表中给出的日期的所有数据(一整天的数据)
我有一个数据帧pd.我想irr根据是否高于或低于thresh hold 更改列的值.
我怎么能在一行中做到这一点?我现在有
pd['irr'] = pd['irr'][pd['cs']*0.63 > pd['irr']] = 1.0
pd['irr'] = pd['irr'][pd['cs']*0.63 <= pd['irr']] = 0.0
Run Code Online (Sandbox Code Playgroud)
问题当然是我irr在下一行再次更改并检查它.
是否有类似熊猫三元条件运算符的东西?
我试图pd.date_range()创建一个DatetimeIndex跨越多天的频率,以秒为单位.但是,每天的时间范围应限制在05:00:00至22:00:00之间
一些事情(当然不起作用):
times_c = pd.date_range(start="2015-01-01",end="2015-01-10",freq="S")
mask_c = ((times_c.time < dt.datetime.strptime("22:00:00", "%H:%M:%S")) | (times_c.time > dt.datetime.strptime("05:00:00","%H:%M:%S")))
times_c = times_c[mask_c]
Run Code Online (Sandbox Code Playgroud)