gpt4 book ai didi

python - 根据 Pandas 数据框中的另一列设置列值

转载 作者:太空宇宙 更新时间:2023-11-04 05:44:10 25 4
gpt4 key购买 nike

我有一个数据框,主要填充与程序输入字段相关的文本数据,用于跟踪测试结果。我的一个专栏跟踪程序中的屏幕位置,我想在对输入字段进行排序时保持屏幕的顺序。我意识到我可以通过为我的屏幕设置一个类别来做到这一点,但我担心从测试计划中导入拼写错误,所以我想在单独的列中为我的每个屏幕设置一个数值并将其用于我的排序。

现在我的数据是这样的:

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() 函数,但我无法找到任何关于如何使解决方案在新列上工作的好文档,只有当我要更改现有值时在我的屏幕栏中。

如果这是重复的,我深表歉意,但我一直在搜索,但尚未找到任何解决方案。

最佳答案

EDIT1:不同,你需要字典来转换。

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

我将最后一个字符转换为数字。有关转换的更多信息是 here .

print df
Screen
0 Screen A
1 Screen A
2 Screen B
3 Screen C
4 Screen D
5 Screen D
6 Screen E

#convert each last letter from column screen to number
# https://stackoverflow.com/a/4528997/2901002
df['Screen Order'] = df['Screen'].apply(lambda x: ord(x[-1].lower()) - 96)
#reordering columns
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

关于python - 根据 Pandas 数据框中的另一列设置列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32852604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com