此问题在此处已有答案:
Pandas DataFrame: apply function to all columns(2个答案)
3天前关闭。
如果我有这个 Dataframe :
| | A|B|C|
| --------------|--------------|--------------|--------------|
| 0|字[|另[|第三[|
| 1|一些[|一个[|四[|
| 第二章|这[|二[|五[|
我想抓取每列中[
之前的单词,并用它替换原始值。
我可以这样一列一列地做:
df.A = df.A.apply(lambda x: re.findall("([\w\s]*)\[", x)[0] if '[' in x else x)
但我希望能够同时将其应用于所有列。
我试过:
df[['A', 'B', 'C']] = df[['A', 'B', 'C']].apply(lambda x: re.findall("([\w\s]*)\[", x)[0] if '[' in x else x)
但是什么也没有发生,我确信我错过了一些与系列和 Dataframe 的交互,因为上面的方法将df转换为系列,而我尝试的代码不起作用,将其保持为 Dataframe 。
这就是我期待得到的:
| | A|B|C|
| --------------|--------------|--------------|--------------|
| 0|字|另|三度|
| 1|一些|一个|四|
| 第二章|这个|两个|五|
1条答案
按热度按时间b4wnujal1#
您可以使用
.str.extract()
来实现这一点。下面是@wjandrea建议的另一种方法
x一个一个一个一个x一个一个二个x