我有一组包含日期的列(从Excel文件导入),我需要按如下方式处理它们:
如果其中一列中的单元格为空,请将另一列设置为1,否则该列为0。这使我能够对所有的1求和,并显示那些项目丢失了。你知道吗
我现在就是这样做的:
df_combined['CDR_Form_notfound'] = np.where(df_combined['CDR-Form'].mask(df_combined['CDR-Form'].str.len()==0).isnull(),1,0)
我遇到的一个问题是,我必须设置这些列的格式,以便A)将日期修剪为仅显示日/月/年,B)其中一些列的值为“see notes”,而不是日期或空白。“see notes”对于正确说明丢失的项目是必不可少的,它必须在那里,以防止单元格标记为空,项目计数为丢失(添加到“空白单元格”计数)。实际的问题是,如果我在上面的.isnull代码之前运行此代码,evry blank将变为NaN、NaN或NaT,然后NOTHING将标记为null/缺失。你知道吗
这是我用来修剪日期字符串并将“see notes”更改为字符串的代码…因为否则它只会在输出中变成空白。你知道吗
for c in df_combined[dateColumns]:
df_combined[c] = df_combined[c].astype(str) # uncomment this if columns change from dtype=str
df_combined[c] = np.where(df_combined[c].str.contains("20"), df_combined[c].str[:10], df_combined[c])
df_combined[c] = np.where(df_combined[c].str.contains("see notes"), df_combined[c].str, df_combined[c])
我想我的问题可能与列的数据类型有关。当我运行print时(df.d类型),每个列都显示为“object”,除了我使用以下命令专门设置为int的列:
df_combined['Num'] = df_combined['Num'].apply(lambda x: int(x) if x == x else "")
您可以使用
ScheduledExecutorService
,因为它的主要用途是以指定的时间间隔在单独的线程上执行任务。但您需要记住,所有与UI相关的操作都必须从EDT完成,因此您应该用SwingUtilities.invokeLater()
来包装txtXPInfo
更新操作:我认为你的问题是你阻止了
Event Thread
。在Swing中,操作系统只使用一个线程来调度UI事件(比如按下按钮)在你的例子中,似乎你在那个线程上无限循环。如果是,那么其他按钮将永远不会注册,因为该线程正忙于
do/while
循环你真正想做的是启动一个不同的线程(有很多这样的例子)来执行append循环,并留下
Event Thread
来调度UI事件相关问题 更多 >
编程相关推荐