【问题标题】:how to write an empty column in a csv based on other columns in the same csv file如何根据同一csv文件中的其他列在csv中写入一个空列
【发布时间】:2018-11-07 09:56:42
【问题描述】:

我不知道这是否是一个非常简单的问题,但我想根据另外两列做一个条件语句。 我有两列,例如:年龄和 SES 以及另一个应该基于这两列的空列。比如一个人65岁,对应的社会经济地位很高,那么在第三栏(空栏=活力等级),例如给出一个1的值。我对我想要实现的目标有所了解,但是我不知道如何在 python 本身中实现它。我知道我应该使用 for 循环并且我知道如何编写条件,但是由于我想考虑两列来确定将在空列中写入的内容,所以我有不知道如何在函数中编写 以及如何写回相同的csv(在相应的空列中)

[]

【问题讨论】:

    标签: python csv for-loop conditional-statements


    【解决方案1】:

    使用 pandas 模块将 csv 作为 DataFrame 对象导入。然后你可以做逻辑语句来填充空列:

    import pandas as pd
    df = pd.read_csv('path_to_file.csv')
    df.loc[(df['age']==65) & (df['SES']=='high'), 'vitality_class'] = 1
    df.to_csv('path_to_new_file.csv', index=False)
    

    【讨论】:

    • 我设法在函数中使用您的代码安装了 pandas,但是当我尝试运行代码时,活力类列仍然为空。 :(
    • 年龄列是存储为整数还是字符串?如果它是一个字符串,那么您需要在 65 中添加引号。此外,它是否会给您一个关于为切片分配值的错误?我将对其进行编辑,使其使用正确的 .loc[row_indexer,col_indexer] = value strategy
    • 嗨 mathisfun,当我用 df.loc[(df['age'] >65)& (df['age']
    • @Joy 很高兴你解决了。随意接受答案,以便未来的读者可以快速看到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多