繁体   English   中英

如何从熊猫数据框行中提取特定的字符串?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM