bjo*_*man 2 python string dataframe pandas
我有一个字符串,如下所示:
string = "entity precision recall f1-score support B-EXPERIENCE 0.578 0.488 0.529 244 I-EXPERIENCE 0.648 0.799 0.716 399 L-EXPERIENCE 0.850 0.697 0.766 244 U-EXPERIENCE 0.000 0.000 0.000 9 B-LANGUAGE 0.000 0.000 0.000 1 I-LANGUAGE 0.000 0.000 0.000 1 L-LANGUAGE 0.000 0.000 0.000 1 U-LANGUAGE 0.788 0.904 0.842 292 B-PROGRAMMING 0.480 0.433 0.455 141 I-PROGRAMMING 0.524 0.328 0.404 67 L-PROGRAMMING 0.261 0.255 0.258 141 U-PROGRAMMING 0.904 0.825 0.862 2010 micro_avg 0.785 0.746 0.765 3550 macro_avg 0.419 0.394 0.403 3550 weighted_avg 0.787 0.746 0.763 3550"
Run Code Online (Sandbox Code Playgroud)
将其转换为以下格式的熊猫数据框的最简单方法是什么?我正在寻找创建一个5列的数据框,第一列的标题可以用“实体”填充。第一列包含实体的名称。
您可以尝试以下方法:
import pandas as pd
s1 = "entity precision recall f1-score support B-EXPERIENCE 0.578 0.488 0.529 244 I-EXPERIENCE 0.648 0.799 0.716 399 L-EXPERIENCE 0.850 0.697 0.766 244 U-EXPERIENCE 0.000 0.000 0.000 9 B-LANGUAGE 0.000 0.000 0.000 1 I-LANGUAGE 0.000 0.000 0.000 1 L-LANGUAGE 0.000 0.000 0.000 1 U-LANGUAGE 0.788 0.904 0.842 292 B-PROGRAMMING 0.480 0.433 0.455 141 I-PROGRAMMING 0.524 0.328 0.404 67 L-PROGRAMMING 0.261 0.255 0.258 141 U-PROGRAMMING 0.904 0.825 0.862 2010 micro_avg 0.785 0.746 0.765 3550 macro_avg 0.419 0.394 0.403 3550 weighted_avg 0.787 0.746 0.763 3550"
s = pd.Series(s1.split(' '))
df = pd.DataFrame(s[5:].to_numpy().reshape(-1,5), columns=s[:5])
Run Code Online (Sandbox Code Playgroud)
输出:
entity precision recall f1-score support
0 B-EXPERIENCE 0.578 0.488 0.529 244
1 I-EXPERIENCE 0.648 0.799 0.716 399
2 L-EXPERIENCE 0.850 0.697 0.766 244
3 U-EXPERIENCE 0.000 0.000 0.000 9
4 B-LANGUAGE 0.000 0.000 0.000 1
5 I-LANGUAGE 0.000 0.000 0.000 1
6 L-LANGUAGE 0.000 0.000 0.000 1
7 U-LANGUAGE 0.788 0.904 0.842 292
8 B-PROGRAMMING 0.480 0.433 0.455 141
9 I-PROGRAMMING 0.524 0.328 0.404 67
10 L-PROGRAMMING 0.261 0.255 0.258 141
11 U-PROGRAMMING 0.904 0.825 0.862 2010
12 micro_avg 0.785 0.746 0.765 3550
13 macro_avg 0.419 0.394 0.403 3550
14 weighted_avg 0.787 0.746 0.763 3550
Run Code Online (Sandbox Code Playgroud)
细节:
用于split
使用空格作为定界符来分割字符串,因此要求更改列标题以从列标题中删除空格。
使用构造函数创建pd.Series,然后使用构造函数和索引切片创建pd.DataFrame。 to_numpy
创建一个numpy数组,然后reshape
使用-1表示行数,使用5表示列数。
归档时间: |
|
查看次数: |
48 次 |
最近记录: |