如果从熊猫数据框列值中删除句子,则删除第一个单词

时间:2019-02-22 12:31:15

标签: python pandas dataframe

我有一个像这样的数据框:

$sql = "SELECT image, posts.imagesid, multiple_image.imagesid, comment
        FROM multiple_image JOIN posts ON (multiple_image.imagesid=posts.imagesid)";
$result = $conn->query($sql);

if (!$result) {
    trigger_error('Invalid query: ' . $conn->error);
}

if ($result->num_rows > 0) {

    // output data of each row
    while($row = $result->fetch_assoc()) {

echo $row['comment'];
$imgs= "<div id='img_div'><img width='' src='upload/".$row['image']."' ></div>";
echo $imgs;
}
}

我想从col2值中删除第一个单词,最后一个数据帧将如下所示:

df:
col1      col2
 A        blue berry
 B        nice water bottle

如何使用熊猫以最有效的方式做到这一点

3 个答案:

答案 0 :(得分:2)

d['col2'] = d['col2'].apply(lambda x: ' '.join(x.split(' ')[1:]))

输出

  col1          col2
0    A         berry
1    B  water bottle

答案 1 :(得分:1)

以您的情况

df1.col2 = df1.col2.str.split(" ",1).str[1]

可能会成功。 .str为您提供了列上的矢量化字符串功能,并且split带有一个附加参数,该参数表示将最大程度地进行拆分的次数。

答案 2 :(得分:1)

n=1的第一个空白处使用split,然后通过建立索引选择第二个列表:

df['col2'] = df['col2'].str.split(n=1).str[1]
print (df)
  col1          col2
0    A         berry
1    B  water bottle

详细信息

print (df['col2'].str.split(n=1))
0           [blue, berry]
1    [nice, water bottle]
Name: col2, dtype: object

如果性能很重要且没有缺失值,则将解决方案转换为列表理解:

df['col2'] = [x.split(maxsplit=1)[1] for x in df['col2']]