期望效果如上蓝色标准列,按区间生成新列,行数不变,对应的默认索引不变。
我尝试过直接筛选,如
df[df['时间差1']<= 43200]
但导出df查看xlsx文件,筛选并没有生效,赋值新dataframe的话,但会自动删除空行
import pandas as pd
import numpy as np
data = pd.DataFrame([47601, 2171, 79059, 10236, 4240, -5545, -26404, 89478, 60364, 59952, 88044], index=[1,2,3,4,5,6,7,8,9,10,11], columns=['时间差'])
data.insert(1,'0~12小时内',value = np.NaN)
data.insert(2,'12~24小时内',value = np.NaN)
for j,i in enumerate(data['时间差'].values):
if 0<=i<=43200:
data['0~12小时内'][j+1] = i
elif i>43200:
data['12小时以上'][j+1] = i
else:
pass
你可以参考一下这个
如果有用,请采纳!
import pandas as pd
import numpy as np
df=pd.DataFrame({'time':[1,0,0,1],'time_delta':[123,456,789,259]})
df['a']=df['time_delta'].where(df['time']==0,np.nan)
df['b']=df['time_delta'].where(df['time']==1,np.nan)
print(df)
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632