[英]How to extract specific String from pandas dataframe rows?
这是我的数据框df:
Pull Up Attribute protected steps : int from class blokusgame.mi.android.hazi.blokus.GameLogic.PlayerAlgorithm to class blokusgame.mi.android.hazi.blokus.GameLogic.Player
Extract Method private getBestMove(moves ArrayList<Move>) : Move extracted from public nextStep() : void in class blokusgame.mi.android.hazi.blokus.GameLogic.PlayerAlgorithm
Extract Method private getNLongMoves(n int) : ArrayList<Move> extracted from private getAllPossibleMoves() : ArrayList<Move> in class blokusgame.mi.android.hazi.blokus.GameLogic.PlayerAlgorithm"
Extract Method public getPoints() : ArrayList<Point> extracted from public equals(b Object) : boolean in class blokusgame.mi.android.hazi.blokus.GameLogic.Block
Extract Method public getMin() : Point extracted from public getDimensions() : Point in class blokusgame.mi.android.hazi.blokus.GameLogic.Block
Extract Method public getMax() : Point extracted from public getDimensions() : Point in class blokusgame.mi.android.hazi.blokus.GameLogic.Block
Extract Method public normalize() : Block extracted from public equals(b Object) : boolean in class blokusgame.mi.android.hazi.blokus.GameLogic.Block"
Extract Method package setPlayer(player Player) : void extracted from protected onCreate(savedInstanceState Bundle) : void in class blokusgame.mi.android.hazi.blokus.MainActivity
Extract Method public isPlaceable(block Block, pt Point) : boolean extracted from public isPlaceable(block Block, corners ArrayList<Point>, pt Point) : boolean in class blokusgame.mi.android.hazi.blokus.GameLogic.Map
Extract And Move Method public placeBlock(blockIndex int, coord Point) : boolean extracted from public placeBlock(blockIndex int, coord Point) : boolean in class blokusgame.mi.android.hazi.blokus.GameLogic.PlayerHuman & moved to class blokusgame.mi.android.hazi.blokus.GameLogic.Player
Rename Class blokusgame.mi.android.hazi.blokus.GameLogic.PlayerColors renamed to blokusgame.mi.android.hazi.blokus.GameLogic.PlayerConstants
Move Class blokusgame.mi.android.hazi.blokus.View.BoardView moved to View.BoardView
Move Class GameLogic.Block moved to blokusgame.mi.android.hazi.blokus.GameLogic.Block
Move Class GameLogic.BlockFactory moved to blokusgame.mi.android.hazi.blokus.GameLogic.BlockFactory
Move Class GameLogic.Map moved to blokusgame.mi.android.hazi.blokus.GameLogic.Map
Move Class GameLogic.Player moved to blokusgame.mi.android.hazi.blokus.GameLogic.Player
Move Class GameLogic.PlayerHuman moved to blokusgame.mi.android.hazi.blokus.GameLogic.PlayerHuman
Move Class GameLogic.Point moved to blokusgame.mi.android.hazi.blokus.GameLogic.Point
Move Class View.BoardView moved to blokusgame.mi.android.hazi.blokus.View.BoardView"
Rename Method package Point(idx int) renamed to public getPoint(idx int) : Point in class GameLogic.Block
我需要提取每行第一个String类之后的nameOfClasses鞭子。
这是我的代码:
import pandas as pd
df = pd.read_csv('result_refactorings.csv', sep=';')
refactoring_details = df['RefactoringDetail']
print(refactoring_details)
a=refactoring_details.to_frame(name=refactoring_details)
a.RefactoringDetail.str.extract(r'class ([^ ]*)')
问题是,当我尝试打印结果时,我发现它没有返回所有类,有包含NaN的行。
结果是:
0 blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
1 blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
2 blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
3 blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
4 blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
5 blokusgame.mi.android.hazi.blokus.GameLogic.Block
6 blokusgame.mi.android.hazi.blokus.GameLogic.Block
7 blokusgame.mi.android.hazi.blokus.GameLogic.Block
8 blokusgame.mi.android.hazi.blokus.GameLogic.Block
9 blokusgame.mi.android.hazi.blokus.MainActivity
10 blokusgame.mi.android.hazi.blokus.GameLogic.Map
11 blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
12 NaN
13 NaN
14 NaN
15 NaN
16 NaN
17 NaN
18 NaN
19 NaN
20 NaN
21 GameLogic.Block
请帮忙!
您的正则表达式r'class ([^ ]*)'
应该是r'[C|c]lass\\s*([^ ]*)'
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.