向不在for循环内工作的数据帧的每一行添加值

2024-03-28 08:45:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

dct = {"A": ["M1", "M1", "M1", "M2", "M2", "M2", "M4", "M4", "M4"], 
       "B": ["S1", "S1", "S3", "S3", "S4", "S4", "S2", "S2", "S2"], 
       "C": ["a", "n", "cb", "mk", "bg", "dgd", "rb", "cb", "uyi"], 
       "D": [3, 2, 5, 8, 10, 1, 2, 2, 7], 
       "E": [4, 3, 6, 8, 9, 4, 3, 0, 8]}

df = pd.DataFrame(dct)

df将产生:

    A   B    C   D  E
0  M1  S1    a   3  4
1  M1  S1    n   2  3
2  M1  S3   cb   5  6
3  M2  S3   mk   8  8
4  M2  S4   bg  10  9
5  M2  S4  dgd   1  4
6  M4  S2   rb   2  3
7  M4  S2   cb   2  0
8  M4  S2  uyi   7  8

现在,我想向dataframe每行的每个值添加一个值,如下所示:

for i in range(len(df.index)):
    row = df.iloc[i, :]
    row["F"] = "TEMP_{}".format(i)

为什么这不起作用

我一直在调查pandasdocumentation,我知道我可能会得到一份df.iloc[i, :],但如果可能的话,我想知道这个问题的解决方案

非常感谢您的帮助


Tags: dfs3s4dctbgcbs2mk
2条回答

首先iloc使用位置分配值,您可以使用loc进行检查

for i in range(len(df.index)):
    df.loc[i, 'F']="TEMP"

如果您想让新列中的所有值都显示为'Temp',您可以说:

df["F"] = "TEMP"

相关问题 更多 >