繁体   English   中英

如何根据名称变量中的条件打印特定的 output

[英]How to print specific output based on condition from name variable

我有一个像这样的 dataframe data

数据

我想要一个像这样的 output :

  • 名称1

    句子1

    句子2

    句子3

  • 名称2

    句子4

  • 名称3

    句子5

    句子6

这是我到目前为止所做的:

first = True

for i in range(0, data.shape[0]):
    if data['Name'][i+1] == data['Name'][i] :
        if first:
            first = False
            print(data['Name'][i])
            print()
            print(data['Sentences'][i])
        else:
            print()
            print(data['Sentences'][i])
           
    if data['Name'][i] != data['Name'][i+1] :
        print(data['Name'][i])
        print(data['Sentences'][i])
       
    else :
        print()

但这并没有给我正确的 output,名字没有印在我想要的地方。 我想我放错地方或忘记了循环中的某些东西,但是什么?

谢谢

编辑:我想我明白了,我想知道我是否正确:这就是我在代码中所做的更改:

first = True

for i in range(0, data.shape[0]):
    if data['Name'][i+1] == data['Name'][i] :
        if first:
            first = False
            print(data['Name'][i])
            print()
            print(data['Sentences'][i])
        else:
            print()
            print(data['Sentences'][i])
           
    if data['Name'][i] != data['Name'][i+1] :
        print(data['Name'][i+1]) #i+1 instead of i
        print(data['Sentences'][i+1])# i+1 instead of i
       
    else :
        print()

我相信有一种更清洁的方法。

笔记:

我的 DataFrame 看起来像这样:

在此处输入图像描述

代码

for name in df.name.unique():
    print(name + ':\n')
    for index, value in df.sentences[df.name == name].items():
        print(value)
    print('\n')

Output

name1:

sentence1
sentence2
sentence3


name2:

sentence4


name3:

sentence5
sentence6

尝试根据您的需要修改上面的代码,看看是否有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM