我的数据框主要填充与程序输入字段相关的文本数据,用于跟踪测试结果。我的一个列跟踪程序中的屏幕位置,我想在排序输入字段时保持屏幕的顺序。我意识到我可以通过为我的屏幕设置一个类别来做到这一点,但我担心从测试计划中导入拼写错误,所以我想在一个单独的列中为每个屏幕设置一个数值,并将其用于我的排序。
现在我的数据看起来像这样:
Screen Order Screen Input Field Result
Screen A .... ....
Screen A .... ....
Screen B .... ....
Screen C .... ....
Screen D .... ....
Screen D .... ....
Screen E .... ....
我试图让它看起来像这样,虽然屏幕可能出现故障:
Screen Order Screen Input Field Result
1 Screen A .... ....
1 Screen A .... ....
2 Screen B .... ....
3 Screen C .... ....
4 Screen D .... ....
4 Screen D .... ....
5 Screen E .... ....
我一直在寻找几个小时,并且没有能够得到任何工作,虽然我觉得这应该很简单。我认为解决方案将使用字典和applymap()函数,但我还没有找到关于如何让解决方案在新列上工作的任何好文档,只有当我要更改我的屏幕栏中的现有值。
如果这是重复的,我道歉,但我一直在寻找,但尚未找到任何解决方案。
答案 0 :(得分:1)
EDIT1:不同的是,你需要转换字典。
Worker workerObject = new Worker();
Thread workerThread = new Thread(workerObject.DoWork);
workerThread.Start();
public void DoWork()
{
while (!_shouldStop)
{
//REFRESH YOUR IMAGE
}
}
我将最后一个字符转换为数字。 有关转换的更多信息是here。
dic = {'Screen A': 1, 'Screen B': 2, 'Screen C': 3,'Screen D': 4,'Screen E': 5}
print df
Screen
0 Screen A
1 Screen A
2 Screen B
3 Screen C
4 Screen D
5 Screen D
6 Screen E
df['Screen Order'] = df['Screen'].apply(lambda x: dic[x])
#reordering
df = df[['Screen Order', 'Screen' ]]
print df
Screen Order Screen
0 1 Screen A
1 1 Screen A
2 2 Screen B
3 3 Screen C
4 4 Screen D
5 4 Screen D
6 5 Screen E