- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的较大脚本中的问题代码。我在“测量”列下有 5 到 7 个不同类别的数据(例如:高度、体重、BMI 等)以及相应的测量值。为了处理下游,我希望将值放在各自单独的列中。
# Import Packages
# -----------------
import re
import pandas as pd
# Sample Data Input
# -----------------
result = [
'XD59876,KEN,name="height",value="5.9",name="weight",value="180",name="Ivef",value="0.09",name="o2_saturation",value="2",name="BMI",value="27",name="heart_rate",value="66"',
'FC00187,ROW,name="height",value="5.11",name="weight",value="210"',
'AN66521,ZEN,name="Ivef",value="0.7",name="o2_saturation",value="62",name="BMI",value="26"',
'NW0098,PLO,name="height",value="6.2",name="weight",value="240",name="o2_saturation",value="2.3",name="heart_rate",value="68"',
'XD57776,KIT,name="BMI",value="32"',
'FC98763,ABC,name="Ivef",value="0.87",name="o2_saturation",value="2.67",name="heart_rate",value="68"'
]
# Output List
# -----------------
output = []
# Regular Expressions Used To Pull Measurement Values
# ---------------------------------------------------
measurement_nameRegex = r'name="([^"]+)"'
measurement_valueRegex = r'value="([^"]+)"'
# Iterate through list
# ---------------------------------------------------
for line in result:
# CSV values
key, fac, measurements = line.split(',', 2)
# Create list using regular expression
measurement_name = re.findall(measurement_nameRegex, measurements)
measurement_value = re.findall(measurement_valueRegex, measurements)
# Check to see we collect only complete data
if len(measurement_name) == len(measurement_value):
# Zip up measurement name with corresponding values & units
row = zip(measurement_name, measurement_value)
if row != []:
for index, value in enumerate(row):
output.append([key, fac, value[0], value[1]])
df = pd.DataFrame(output, columns=["Key", "Facility", "Measurement", "Value"])
# df_pivot = df.pivot_table(index=["Key", "Facility"], columns="Measurement", values="Value")
print(df)
当前输出:
Key Facility Measurement Value
0 XD59876 KEN height 5.9
1 XD59876 KEN weight 180
2 XD59876 KEN Ivef 0.09
3 XD59876 KEN o2_saturation 2
4 XD59876 KEN BMI 27
5 XD59876 KEN heart_rate 66
6 FC00187 ROW height 5.11
所需输出:
Key Facility height weight Ivef o2_saturation BMI heart_rate
XD59876 KEN 5.9 180 0.09 2 27 66
我尝试了 Pandas pivot
和 pivot_table
但它们进行聚合。我不想聚合任何东西。我想要的只是改变数据的组织方式。
最佳答案
纯 Pandas 解决方案:
import pandas as pd
# some sample data...
rows = [('XD59876','KEN','height','5.9'),
('XD59876','KEN','weight','0.09'),
('XD59876','KEN','o2_sat','2'),
('FC00187 ','ROW','height','5.11')]
df = pd.DataFrame(rows, columns=['Key','Facility','Measurement','Value'])
# move everything but Value to the index
df.set_index(['Key', 'Facility', 'Measurement'], inplace=True)
# convert the Measurement index to column labels
df = df.unstack('Measurement')
# get rid of 'Measurement' label in the columns index
df.columns = df.columns.droplevel()
# get rid of Value label
df.columns.name = ''
# make Key and Facility regular columns again
df.reset_index(inplace=True)
print df
输出是:
Key Facility height o2_sat weight
0 FC00187 ROW 5.11 NaN NaN
1 XD59876 KEN 5.9 2 0.09
关于python - 根据值将一列中的数据拆分为单独的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35002871/
我有一个数组列表: ArrayList allText = new ArrayList(); 其内容是这样的: [Alabama - Montgomery, Alaska - Juneau, Ariz
我有一个 timestamp 格式的开始和结束时间。我想将它们分成多个时间段,例如 1 小时。 $t1 = strtotime('2010-05-06 12:00:00'); $t2 = strtot
我需要将 span10 分成 3 列,但我无法将它们排列起来。我应该在 span10 中添加一个 span12 还是使用 offset 还是??
我有一个时间序列。我想从早上 8 点到第二天早上 7:59 分成 24 小时的区 block 。我知道如何按日期分组,但我尝试过使用 TimeGroupers 和 DateOffsets 处理这个 8
我收到“街道号码邮政编码城市”形式的地址(作为字符串)。我想要做的是将街道和号码与邮政编码和城市分开。通常你可以按空格分割。但有些街道名称中也有空格,例如:“Emile Van Ermengemlaa
我有一个用户列表。其中一些用户处于第一状态,而其他用户处于第二状态。所以我想要的是将这个列表显示为首先,它按排序顺序显示存在 = 1 的用户,然后按排序顺序显示存在 = 2 的用户。这里的排序是根据用
我感觉我搜索了整个网络,但找不到一种方法将不同高度的 div 很好地划分为 3 列,就像 http://www.ing.nl 上那样 headertekst headerteksttesth
Bootstrap 3 按钮下拉菜单出现问题。你可以在这里看到我的两个例子: http://www.bootply.com/W1dLusilMk http://www.bootply.com/GGBv
我在 php 中执行以下操作 foreach($QuestionAsekd as $k => $v){ $grp_name = $v['NAME']; $groupValues[$gr
我找到了一种用pandas解析html的绝妙方法。我的数据格式有点奇怪(见下文)。我想将这些数据拆分为 2 个单独的数据帧。 注意每个单元格如何由,分隔...是否有任何真正有效的方法来分割所有这些单元
HTML 看起来像这样,但我不允许对其进行更改。我只能编写 CSS 将其变成 2 列。 Povezave www.behance.net www.kiberpipa.org www.o
假设我有以下数据框“A” utilization utilization_billable service 1
我需要将 2 个文本框拉伸(stretch)到 100% 的浏览器宽度,以及一个提交按钮。所有三个都应该在一行中,我试图拉伸(stretch)它但它没有发生......有什么想法吗? 代码: .sea
我是一名优秀的程序员,十分优秀!