Python 使用可变长度在每行的列中显示条带值

Python 使用可变长度在每行的列中显示条带值,python,pandas,Python,Pandas,熊猫数据框中有一列,如下所示: | Name | Count | |------------------------|-------| | APPLE Apple | 541 | | BANANA Banana | 56 | | ORANGE Orange | 345 | | BERRY21 Strawberry | 743 | | GrapeFruit6 Grapefruit

熊猫数据框中有一列,如下所示:

| Name                   | Count |
|------------------------|-------|
| APPLE Apple            | 541   |
| BANANA Banana          | 56    |
| ORANGE Orange          | 345   |
| BERRY21 Strawberry     | 743   |
| GrapeFruit6 Grapefruit | 87    |
其中,“名称”列包含两个名称,右侧有正确的名称。我想去掉左边苹果、香蕉、橘子等的多余字符。。。但是由于它们的长度不同,我不知道如何做,否则我会做类似df['Name']=df['Name'].str[5:]

最后,我想得出以下结论:

| Name       | Count |
|------------|-------|
| Apple      | 541   |
| Banana     | 56    |
| Orange     | 345   |
| Strawberry | 743   |
| Grapefruit | 87    |
删除大写名称/带有数字的名称,只留下最右边的名称。有人给点小费吗?谢谢

试试:

尝试:

您可以使用此正则表达式尝试.str.extract:

df['Name'] = df['Name'].str.extract(' ([\S]+)$')
另一种方法:

df['Name'] = [x.split()[-1] for x in df['Name']]
您可以使用此正则表达式尝试.str.extract:

df['Name'] = df['Name'].str.extract(' ([\S]+)$')
另一种方法:

df['Name'] = [x.split()[-1] for x in df['Name']]
我会尝试:

df['Name'] = df['Name'].str.split().str[1]
或者使用apply…

我会尝试:

df['Name'] = df['Name'].str.split().str[1]

或者使用apply…

在查看这些其他答案后,可能会变得不必要的复杂,但以下内容也可能有效

dframe["Name"] = [re.match("\w+\s+(\w+)",str(element)).group(1) for element in dframe["Name"]]

在看了这些其他答案之后,可能不必要地变得复杂,但下面的内容也可能有用

dframe["Name"] = [re.match("\w+\s+(\w+)",str(element)).group(1) for element in dframe["Name"]]

series.str应该有帮助…series.str应该有帮助。。。