Python 如何迭代df中的行,并永久更改列';通过映射得到的s值?

Python 如何迭代df中的行,并永久更改列';通过映射得到的s值?,python,pandas,Python,Pandas,我想有条件地更新数据帧列中的值 我正在处理一家冰淇淋店及其面临的投诉。问题及其总数存储在字典中: myDict = {"Rude Staff":12, "Poor Hygiene":4, "Out of Stock":3} 我还有更大的df,包含了一个月的冰淇淋店数据 date| day | 'Rude Staff'| 'Poor Hygiene' | 'Out of Stock'<br> 01/06/19 | Sat | ? | ? | ? 09/06/19 | Sun | ?

我想有条件地更新数据帧列中的值

我正在处理一家冰淇淋店及其面临的投诉。问题及其总数存储在字典中:

myDict = {"Rude Staff":12, "Poor Hygiene":4, "Out of Stock":3}
我还有更大的df,包含了一个月的冰淇淋店数据

date| day | 'Rude Staff'| 'Poor Hygiene' | 'Out of Stock'<br>
01/06/19 | Sat | ? | ? | ? 
09/06/19 | Sun | ? | ? | ? 
15/09/21 | Fri | ? | ? | ? 
这不起作用,因为ItErrors不会永久编辑行的值


如何根据df中的“粗鲁的职员”是否与我的字典中的“粗鲁的职员”匹配,将我的字典键的值映射到df中的一列?

您可以在dict上使用简单的迭代:

for key, value in myDict.items():
    df[key] = value

您可以在dict上使用简单的迭代:

for key, value in myDict.items():
    df[key] = value

如果dict键与
df.columns
同步,则可以与
regex=True
一起使用:

myDict = {"Rude Staff":12, "Poor Hygiene":4, "Out of Stock":3}
df.replace('\?',myDict,regex=True)


如果dict键与
df.columns
同步,则可以与
regex=True
一起使用:

myDict = {"Rude Staff":12, "Poor Hygiene":4, "Out of Stock":3}
df.replace('\?',myDict,regex=True)


假设dict中的键和DataFrame中的键相同,您可以在为包含“?”的行分配值的列上迭代

演示:

显示:

       date  day Rude Staff Poor Hygiene Out of Stock
0  20/05/19  Xxx          1            2            3
1  01/06/19  Sat          ?            ?            ?
2  09/06/19  Sun          ?            ?            ?
3  15/09/21  Fri          ?            ?            ?
       date  day Rude Staff Poor Hygiene Out of Stock
0  20/05/19  Xxx          1            2            3
1  01/06/19  Sat         12            4            3
2  09/06/19  Sun         12            4            3
3  15/09/21  Fri         12            4            3

显示只替换了
值。

假设dict中的键和DataFrame中的键相同,您可以在为包含“?”的行分配值的列上迭代

演示:

显示:

       date  day Rude Staff Poor Hygiene Out of Stock
0  20/05/19  Xxx          1            2            3
1  01/06/19  Sat          ?            ?            ?
2  09/06/19  Sun          ?            ?            ?
3  15/09/21  Fri          ?            ?            ?
       date  day Rude Staff Poor Hygiene Out of Stock
0  20/05/19  Xxx          1            2            3
1  01/06/19  Sat         12            4            3
2  09/06/19  Sun         12            4            3
3  15/09/21  Fri         12            4            3

显示只替换了
值。

字典中的键没有大写,因为df列是。这是故意的吗?我的意思是dict键与df列相同吗?@anky_91是的,它们应该具有相同的值,抱歉。现在更正。字典中的键没有像df列那样大写。这是故意的吗?我的意思是dict键与df列相同吗?@anky_91是的,它们应该具有相同的值,抱歉。现在更正。
       date  day Rude Staff Poor Hygiene Out of Stock
0  20/05/19  Xxx          1            2            3
1  01/06/19  Sat          ?            ?            ?
2  09/06/19  Sun          ?            ?            ?
3  15/09/21  Fri          ?            ?            ?
       date  day Rude Staff Poor Hygiene Out of Stock
0  20/05/19  Xxx          1            2            3
1  01/06/19  Sat         12            4            3
2  09/06/19  Sun         12            4            3
3  15/09/21  Fri         12            4            3