我有一个像这样的数据框:
$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
如何使用熊猫以最有效的方式做到这一点
答案 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']]