In [22]: df
Out[22]:
0 1 2
0 apple orange pear
1 peach apple pear
In [23]: def startswith(prefix, default=''):
...: def f(S):
...: for val in S:
...: if val.startswith(prefix):
...: return val
...: return default
...: return f
...:
In [24]: df.apply(startswith('pe'), axis=1)
Out[24]:
0 pear
1 peach
dtype: object
暴力方法:
注意,这是没有效率的。它本质上是一个庞大的、嵌套的python for循环。如果您有一堆字符串,那么数据帧就不是正确的数据结构。你知道吗
注意,
df.apply
采用一个函数,该函数将应用于每一列(如果传递axis=0,则为默认值)或每一行(如果传递axis=1)。你知道吗startswith
函数是一个函数工厂,因此您可以向它传递一个要搜索的前缀,以及一个默认值,如果它从未找到匹配项(您可以将其设置为任何您想要的值),它将返回一个新函数,该函数搜索给定这些约束的行。你知道吗我的解决方法和@胡安帕.阿里维拉加. 只要您希望多维列表输入相对较小,那么这个嵌套循环就可以正常工作。你知道吗
循环遍历多维数组(在将其放入数据帧之前),然后在该列表中搜索以“pe”开头的字符串的第一个匹配项(或您正在搜索的任何字符串)。将该字符串作为一项列表插入结果列表。填充该列表后,再次将其放入数据帧中。你知道吗
myList=[['apple'、'orange'、'pear']、['peach'、'apple'、'pear']] 结果列表=[]
相关问题 更多 >
编程相关推荐