【问题标题】:extract values of column according to value in another columns in csv file根据csv文件中另一列中的值提取列的值
【发布时间】:2019-08-23 06:02:06
【问题描述】:

这是我的文件:

 id;verbatim;score
0;1; je suis beau;1
1;2; je suis laid;0
2;3;je suis merveilleux;1
3;4;je suis repugne;0

我想提取“逐字”列中得分为 1 和所有得分为 0 的所有句子,以便我有两个单独的文件:

print(verbatim, score = 1)
id;verbatim;score
1; je suis beau;1
3;je suis merveilleux;1

print(verbatim, score = 0)
id;verbatim;score
2; je suis laid;0
4;je suis repugne;0

我开始写一些代码,但我并不认为它走在正确的道路上:

df = pd.read_csv("out.csv", na_values = ['no info', '.'], encoding='latin-    1', delimiter=';')    
m1 = df['verbatim'].eq(0)
m2 = df['critere'].eq(0)


SizePos = df[m1 & m2]
dSizeZero_PptPosf2 = df[m1 & ~m2]
SizeZero_PptZero = df[~m1]

print(SizePos)

当我在读取文件后打印 df.head() 时:

      id                                           Verbatim   ...    Scoreneg  Scoreneu
   0   1  Je nai pas bien compris si cétait destiné à ...   ...           6813     3202
   1   2  Peut-être quil faut que je révise mes classiq...   ...       20842     3974
   2   3  ça peut donner une photographie pour dire que ...   ...        5083      384
   3   4  Je comprends bien lintérêt quil peut y avoir...   ...       11335     1132
   4   5         Jai bien compris le concept, cest clair.   ...         258       91

【问题讨论】:

    标签: python-3.x pandas csv parsing dictionary-comprehension


    【解决方案1】:

    如果您打算使用pd.read_csv(),并且您有兴趣仅提取符合您所需条件的句子,那么您可以执行以下操作:

    import pandas as pd
    
    df = pd.read_csv('test.csv', sep=';')
    
    df[df['score']==1]['verbatim'].values
    
    df[df['score']==0]['verbatim'].values
    

    这将给出:

    [' je suis beau' 'je suis merveilleux']
    [' je suis laid' 'je suis repugne']
    

    【讨论】:

    • 谢谢你它正在工作,但我怎么能在一个新文件中打印它:我试过这个,但它不是我想要的,它也打印分数:df0[df0['score'] = = 0]['verbatim'].to_csv('score0.csv', sep=';', encoding='latin-1') => 我只想将 csv 文件中的逐字列表作为输出,你呢有想法吗?
    【解决方案2】:

    试试这个:

    df = pd.read_csv("out.csv", na_values = ['no info', '.'], encoding='latin-    1', delimiter=';')    
    
    df[df['score'] == 1].to_csv("score1.csv")
    df[df['score'] == 0].to_csv("score0.csv")
    

    就这么简单。

    【讨论】:

    • 谢谢,但它不起作用。内容相同。
    • 我把结果放在我的问题中,见上文:
    • 我试过这个 df0[df0['Niveau'] == 1]['Verbatim'].to_csv('Niveau1.csv', sep=';', encoding='latin-1' ) 它的工作原理是这样的:0;Je n'ai pas bien compris si c'était destiné à rester ad-vitam dans le bâtiment ou si c'est juste à la livraison sur une période donnée。 Parce que si c'et un bâtiment neuf, sauf à dire qu'il ya des malfaçons... j'ai du mal à comprendre 1;Peut-être qu'il faut que je révise mes classiques mais le R est calculé au vu des différents composants de la paroi et il ne peut pas évoluer comme ça à la minute ----我还想打印列 id,你能帮帮我吗?
    • 如果可行,请尝试:df0[df0['Niveau'] == 1][['Verbatim', 'id']].to_csv('Niveau1.csv', sep=';', encoding='latin-1')
    猜你喜欢
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 2012-07-23
    • 2023-02-18
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    相关资源
    最近更新 更多