我试图循环一个pandas数据框并替换某些列中的值,如果它们满足某些条件.我发现通常有更简单的方法可以做到这一点,但在我的具体示例中,我需要一个循环,因为一行的结果可能取决于前一行.以下是出现问题的可重复示例.当我尝试替换文本时,它不会替换它.
import pandas as pd
df = pd.DataFrame({"A": ["I", "AM", "NOT", "WORKING", "!"], "B": [20, 30, 10, 40, 50], "C": [32, 234, 23, 23, 42523]})
for index, row in df.iterrows():
row['A'] = "I am working!"
print(df)
Run Code Online (Sandbox Code Playgroud)
哪个印刷品:
A B C
0 I 20 32
1 AM 30 234
2 NOT 10 23
3 WORKING 40 23
4 ! 50 42523
Run Code Online (Sandbox Code Playgroud)
DSM*_*DSM 13
您可以使用.loc以下方法写入原始帧:
>>> for index, row in df.iterrows():
... df.loc[index, "A"] = "I am working! {}".format(row["B"])
...
>>> df
A B C
0 I am working! 20 20 32
1 I am working! 30 30 234
2 I am working! 10 10 23
3 I am working! 40 40 23
4 I am working! 50 50 42523
[5 rows x 3 columns]
Run Code Online (Sandbox Code Playgroud)
除此之外:即使一行依赖于前一行,也可以有方法对其进行矢量化,但我承认,有时候手动循环方式更简单.
| 归档时间: |
|
| 查看次数: |
15003 次 |
| 最近记录: |