【问题标题】:Comparison of URL from CSV is not working with Python PandasCSV 中的 URL 比较不适用于 Python Pandas
【发布时间】:2021-03-08 00:04:59
【问题描述】:

我正在尝试使用 python pandas 比较 csv 中的某些记录。不幸的是,它无法检测到具有确切 URL 的记录。 如需进一步解释,请参见下面的代码

 def find_function_name(self,file_path,line):
        fn_data = pd.read_csv(constant.MAP_PARSER_FILE)
        print(fn_data.head())
        print(file_path)
        print(line)
        function_details=fn_data.loc[(fn_data['Filepath'] == 'C:\Users\PATH\TO\FOLDER\Model\Wireless.php')]
        print(function_details)
        sys.exit()

CSV结构如下

Filepath    FunctionName    StartLine   EndLine
C:\Users\PATH\TO\FOLDER\Model\Wireless.php  getSampleThroughput 2174    2231
C:\Users\PATH\TO\FOLDER\Model\Wireless.php  getSampleThroughput 205 351
C:\Users\PATH\TO\FOLDER\Model\Wireless.php  getSampleThroughput 361 439
C:\Users\PATH\TO\FOLDER\Model\Wireless.php  getSampleThroughput 449 528
C:\Users\PATH\TO\FOLDER\Model\Wireless.php  getSampleThroughput 532 802

我可以知道我的代码中缺少什么来进行正确的比较吗?

【问题讨论】:

  • 您将FunctionName 列与路径而不是Filepath 列进行比较。
  • @Hasnat 我修改了问题

标签: python pandas dataframe csv url


【解决方案1】:

你可以这样比较。我认为您可能想将其与 Filepath 列而不是 FunctionName 进行比较。

function_details = fn_data[fn_data['Filepath'] == r'C:\Users\PATH\TO\FOLDER\Model\Wireless.php']
    

【讨论】:

  • 我已经修改了代码,然后它没有显示任何记录,返回一个空数据框。
  • 我认为这个问题与 url 中的反斜杠有关
  • 得到这个错误 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
  • 尝试使用r'C:\Users\PATH\TO\FOLDER\Model\Wireless.php''C:\\Users\\PATH\\TO\\FOLDER\\Model\\Wireless.php'
  • 我需要用更多条件过滤同样的内容 function_details=fn_data.loc[(fn_data['Filepath'] == r'{}'.format(file_path)) & (fn_data['StartLine' ].ge(2174))]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 2019-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-05
  • 2017-10-18
相关资源
最近更新 更多