TL:DR-如何基于包含特定文本段的列,从现有非索引数据帧中的一列或多列创建数据帧/系列?
对Python和数据分析比较陌生(这是我第一次发布关于堆栈溢出的问题,但我已经寻找了很长一段时间的答案(并且习惯于定期编写代码),但没有任何成功
我从一个没有命名/索引列的Excel文件导入了一个数据帧。我正试图成功地从这些文件中提取数据,这些文件都有稍微不同的数据列(当然-为什么要使它简单。。。或者遵循模板。。。或者只是使用格式不好的Excel电子表格以外的东西
原始数据帧(来自结构不良的XLS文件)看起来有点像这样:
0 NaN RIGHT NaN
1 Date UCVA Sph
2 2007-01-13 00:00:00 6/38 [-2.00]
3 2009-11-05 00:00:00 6/9 NaN
4 2009-11-18 00:00:00 6/12 NaN
5 2009-12-14 00:00:00 6/9 [-1.25]
6 2018-04-24 00:00:00 worn CL [-5.50]
3 4 5 6 7 8 9 \
0 NaN NaN NaN NaN NaN NaN NaN
1 Cyl Axis BSCVA Pentacam remarks K1 K2 K2 back
2 [-2.75] 65 6/9 NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN 6/5 Pentacam 46 43.9 -6.6
5 [-5.75] 60 6/6-1 NaN NaN NaN NaN
6 [+7.00} 170 6/7.5 NaN NaN NaN NaN
... 17 18 19 20 21 22 \
0 ... NaN NaN NaN NaN NaN NaN
1 ... BSCVA Pentacam remarks K1 K2 K2 back K max
2 ... 6/5 NaN NaN NaN NaN NaN
3 ... NaN NaN NaN NaN NaN NaN
4 ... NaN Pentacam 44.3 43.7 -6.2 45.5
5 ... 6/4-4 NaN NaN NaN NaN NaN
6 ... 6/5 NaN NaN NaN NaN NaN
我想提取一组数据帧/序列,然后将它们组合在一起,得到一个“整洁”的数据帧,例如:
1 Date R-UCVA R-Sph
2 2007-01-13 00:00:00 6/38 [-2.00]
3 2009-11-05 00:00:00 6/9 NaN
4 2009-11-18 00:00:00 6/12 NaN
5 2009-12-14 00:00:00 6/9 [-1.25]
6 2018-04-24 00:00:00 worn CL [-5.50]
1 R-Cyl R-Axis R-BSCVA R-Penta R-K1 R-K2 R-K2 back
2 [-2.75] 65 6/9 NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN 6/5 Pentacam 46 43.9 -6.6
5 [-5.75] 60 6/6-1 NaN NaN NaN NaN
6 [+7.00} 170 6/7.5 NaN NaN NaN NaN
等等。等等。所以我试着写一些代码,通过查找单词“Date”或“UCVA”等来提取一系列列,然后我计划将它们重新缝合到一个单独的数据框中,并将patient identifier作为一个额外的列。然后循环浏览所有的XLS文件,将所有文件添加到一个CSV文件中,然后我就可以对其进行有用的操作(比如放入Access数据库-是的,我知道,但它必须易于使用,并且已经安装在NHS计算机上-和统计分析)
有什么建议吗?我希望这是足够的信息
非常感谢
谨致问候 维姬
这里有一个东西,希望能让你开始。 我准备了一个
text.xlsx
文件: 我可以这样读这就产生了输出
以及
一些指针: 如何合并两个标题行?参见this问答
如何有条件地选择列?参见this或this
如何合并数据帧?熊猫馆有一个很好的导游
相关问题 更多 >
编程相关推荐