【问题标题】:Loop / Iterate over pandas DataFrame循环/迭代 pandas DataFrame
【发布时间】:2021-12-28 10:18:10
【问题描述】:

我是 python 新手,使用 for 循环迭代 csv 文件, csv 文件如下所示。

所以我想要句子:

启动 Flipkart https://www.flipkart.com: (0,6) 将启动

输入电子邮件 xyz@gmail.com : (0,5) 将输入

下面是我使用的代码。

df=pd.read_csv("File_name.csv")
l1=[]
l2=[]
for i in range(0,len(df['SENTENCE'])):
    l1.append(df['SENTENCE'][i])
    l2.append({"entities":[(0,len(df['SENTENCE'][i]),df['Operation'][i])]})
    l2.append({"entities":[(0,len(df['SENTENCE'][i]),df['Argument'][i])]})

TRAIN_DATA=list(zip(l1,l2))
TRAIN_DATA

我在第 6 行遇到问题,即:

l2.append({"entities":[(0,len(df['SENTENCE'][i]),df['Operation'][i])]})

因为df[SENTENCE'][i] 应该替换为变量,但不知道如何创建变量以便获得最佳结果。

请帮帮我。

【问题讨论】:

  • 请在您的问题中添加预期输出。
  • [('Launch', 'Operation'), ('flipkart.com', 'Argument')]

标签: python pandas dataframe csv for-loop


【解决方案1】:

从每个句子中获取第一个单词(操作):

df2.SENTENCE.apply(lambda x: x.split(' ')[0])

从每个句子中获取最后一个单词(Argument):

df2.SENTENCE.apply(lambda x: x.split(' ')[-1])

【讨论】:

  • 其实我正在训练数据,我希望 Launch 被标识为 Operation,Launch Flipkart flipkart.com 这句话我希望 (0,6) value 是 operation。
  • 所以你想从句子中提取'launch'? a.k.a. 第一个字?然后只需使用:df.SENTENCE.apply(lambda x: x.split(' ')[0])
  • 我的csv文件有100多个句子,所以我想对每个句子的操作进行识别。
  • 但有些句子之间有操作。
  • @Paul 感谢所有帮助,问题已解决。
猜你喜欢
  • 2018-10-13
  • 2021-02-24
  • 2016-06-07
  • 2020-01-03
  • 2018-06-06
  • 1970-01-01
  • 2019-07-28
  • 2021-10-02
  • 2023-03-24
相关资源
最近更新 更多