paths
应用 str.split("/") 函数后,如何选择列中列表的最后一项?
dataNpaths = pl.scan_csv("test_data/file*.csv", has_header=True, include_file_paths = "paths").collect()
dataNpaths.with_columns(pl.col("paths").str.split("/").alias("paths"))
>>> dataNpaths.with_columns(pl.col("paths").str.split("/").alias("paths"))
shape: (30, 5)
┌──────────┬──────────┬──────────┬──────────┬────────────────────────────┐
│ Column1 ┆ Column2 ┆ Column3 ┆ Column4 ┆ paths │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ f64 ┆ f64 ┆ f64 ┆ f64 ┆ list[str] │
╞══════════╪══════════╪══════════╪══════════╪════════════════════════════╡
│ 0.603847 ┆ 0.509877 ┆ 0.091579 ┆ 0.43821 ┆ ["test_data", "file1.csv"] │
│ 0.572299 ┆ 0.817647 ┆ 0.087951 ┆ 0.397217 ┆ ["test_data", "file1.csv"] │
│ 0.886123 ┆ 0.159805 ┆ 0.766246 ┆ 0.083915 ┆ ["test_data", "file1.csv"] │
│ 0.142208 ┆ 0.413847 ┆ 0.043408 ┆ 0.147779 ┆ ["test_data", "file1.csv"] │
│ 0.105215 ┆ 0.924754 ┆ 0.309823 ┆ 0.724407 ┆ ["test_data", "file1.csv"] │
│ … ┆ … ┆ … ┆ … ┆ … │
│ 0.381675 ┆ 0.849887 ┆ 0.498281 ┆ 0.733085 ┆ ["test_data", "file3.csv"] │
│ 0.697427 ┆ 0.950464 ┆ 0.999596 ┆ 0.645253 ┆ ["test_data", "file3.csv"] │
│ 0.49979 ┆ 0.172414 ┆ 0.679287 ┆ 0.091804 ┆ ["test_data", "file3.csv"] │
│ 0.668585 ┆ 0.640259 ┆ 0.932463 ┆ 0.579558 ┆ ["test_data", "file3.csv"] │
│ 0.077462 ┆ 0.802565 ┆ 0.966791 ┆ 0.29297 ┆ ["test_data", "file3.csv"] │
但这两种方法都没有奏效
dataNpaths.with_columns(pl.col("paths").str.split("/")[-1].alias("paths"))
dataNpaths.with_columns(pl.col("paths").str.split("/",-1).alias("paths"))
使用
List
访问器:.alias('paths')
是多余的,因为您使用的是旧的列名