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应该有帮助。。。