首页 > 解决方案 > 如何将数据帧的行迭代成多行句子?

问题描述

我正在使用 twilio 发送警报。

我需要发送一个带有特定句子的警报,其中一个数据帧中的值附加到句子中。我该怎么做?

示例数据框如下所示:

    zone          script  totalcount           datetimecomplete
0   2.0       Consumers           1 2018-05-02 17:46:38.232354
1   2.0       Inventory           1 2018-05-02 17:46:38.232354
2   2.0  Orders_Details           1 2018-05-02 17:46:38.232354
3   3.0       Consumers           1 2018-05-02 17:46:38.232354
4   3.0       Inventory           1 2018-05-02 17:46:38.232354
5   3.0  Orders_Details           1 2018-05-02 17:46:38.232354
6   6.0        Birthday           1 2018-05-02 17:46:38.232354

多行句子如下所示:

"""
Zone: {}, Script: {}, {} Successful Completions
Zone: {}, Script: {}, {} Successful Completions
Zone: {}, Script: {}, {} Successful Completions
Zone: {}, Script: {}, {} Successful Completions
Zone: {}, Script: {}, {} Successful Completions
Zone: {}, Script: {}, {} Successful Completions
Zone: {}, Script: {}, {} Successful Completions
"""

对于多行字符串的每一行,我需要只为列填充数据框的相应行[zone, script, totalcount]

示例(文本需要看起来像这样):

 """
    Zone: 2.0, Script: Consumers, 1 Successful Completions
    Zone: 2.0, Script: Inventory, 1 Successful Completions
    Zone: 2.0, Script: Orders_Details, 1 Successful Completions
    Zone: 3.0, Script: Consumers, 1 Successful Completions
    Zone: 3.0, Script: Inventory, 1 Successful Completions
    Zone: 3.0, Script: Orders_Details, 1 Successful Completions
    Zone: 6.0, Script: Birthday, 1 Successful Completions
    """

到目前为止,Twilio 代码不起作用:

if df.empty == False:
    for i in lst:
        message = client.messages.create(
                to=i, 
                from_="+1234567890",
                body= """
                      Zone: {}, Script: {}, {} Successful Completions
                      Zone: {}, Script: {}, {} Successful Completions
                      Zone: {}, Script: {}, {} Successful Completions
                      Zone: {}, Script: {}, {} Successful Completions
                      Zone: {}, Script: {}, {} Successful Completions
                      Zone: {}, Script: {}, {} Successful Completions
                      Zone: {}, Script: {}, {} Successful Completions
                      """).format(df)
        time.sleep(5)
    print(message.sid)
else:
    print('script has finished')

标签: pythonstringpandasformat

解决方案


这是你需要的吗?

('Zone: '+df.zone.astype(str)+', Script: '+df.script+','+df.totalcount.astype(str)+' Successful Completions')
Out[648]: 
0    Zone: 2.0, Script: Consumers,1 Successful Comp...
1    Zone: 2.0, Script: Inventory,1 Successful Comp...
2    Zone: 2.0, Script: Orders_Details,1 Successful...
3    Zone: 3.0, Script: Consumers,1 Successful Comp...
4    Zone: 3.0, Script: Inventory,1 Successful Comp...
5    Zone: 3.0, Script: Orders_Details,1 Successful...
6    Zone: 6.0, Script: Birthday,1 Successful Compl...
dtype: object

推荐阅读