-2

我正在处理这个for 循环,我从 CSV 文件中导入了数据。我正在尝试将不同的变量分配给不同的日期。但是,我的 for 循环只返回 1 个变量。

理想情况下,它应该如下所示:

     Date    mr 
    1/1/11   23
    1/1/11   23
    1/2/11   100
    1/2/11   100
    1/3/11   ok
    1/3/11   ok

我试过以下代码:

 mr= []

     for i in df['Date']:
         if str(df[['Date']]) == '1/1/11':
             mr.append('23')
         elif str(df[['Date']]) == '1/2/11':
             mr.append('100')
         else:
             mr.append('ok')

 df['mr'] = mr

我得到的是:

    Date     mr 
    1/1/11   ok
    1/1/11   ok
    1/2/11   ok
    1/2/11   ok
    1/3/11   ok
    1/3/11   ok

有人能告诉我如何将每个变量分配给每个日期吗?谢谢

4

2 回答 2

1

使用 for 循环也可以访问数据帧值。str(df[['Date']])给出数据框的字符串格式化日期列。所以你得到的ok只是价值。检查以下工作代码片段

mr= []

for i in df['Date']:
    if str(i) == '1/1/11':
        mr.append('23')
    elif str(i) == '1/2/11':
        mr.append('100')
    else:
        mr.append('ok')

df['mr'] = mr
于 2019-09-08T11:06:57.707 回答
1

这将完成这项工作

mapping = {
    '1/1/11': '23', 
    '1/2/11': '100', 
    '1/3/11': 'ok'
}

df['mr'] = df['Date'].map(mapping)
于 2019-09-08T10:53:58.597 回答