- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据集,需要从长到宽进行解析和操作。每行代表一个人,有多个列代表测量的实例(英国生物银行格式):
import pandas as pd
# initialize data of lists.
data = {'id': ['1', '2', '3', '4'],
'3-0.0': [20, 21, 19, 18],
'3-1.0': [10, 11, 29, 12],
'3-2.0': [5, 6, 7, 8]}
# Create DataFrame
df = pd.DataFrame(data)
df.set_index('id')
3-0.0、3-1.0 和 3-2.0 是同一事件对给定人员的三种不同度量。我想要的是给定人员的多行和指示事件实例(0,1 或 2)的列,然后是关联值的列。
我的低效方法如下,我知道它可以做得更好。我是 python 的新手,所以正在寻找更有效的编码方式:
# parsing out each instance
i0 = df.filter(regex="\-0\.")
i1 = df.filter(regex="\-1\.")
i2 = df.filter(regex="\-2\.")
# set index as column and melt each df
i0.reset_index(inplace=True)
i0 = pd.melt(i0, id_vars = "index", ignore_index = True).dropna().drop(columns=['variable']).assign(instance = '0')
i1.reset_index(inplace=True)
i1 = pd.melt(i1, id_vars = "index", ignore_index = True).dropna().drop(columns=['variable']).assign(instance = '1')
i2.reset_index(inplace=True)
i2 = pd.melt(i2, id_vars = "index", ignore_index = True).dropna().drop(columns=['variable']).assign(instance = '2')
# concatenate back together
fin = pd.concat([i0,i1,i2])
data = {'id': ['1', '2', '3', '4'],
'3-0.0': [20, 21, 19, 18],
'3-1.0': [10, 11, 29, 12],
'3-2.0': [5, 6, 7, 8]}
# final dataset looks like this
id, measure, instance
1 20 0
1 10 1
1 5 2
2 21 0
2 11 1
2 6 2
3 19 0
3 29 1
3 7 2
4 18 0
4 12 1
4 8 2
如果您能将多个测量列的格式合并为这样的事实,将获得奖励 3-0.0','3-1.0', '3-2.0','4-0.0','4-1.0', '4-2.0',...
最佳答案
给定:
id 3-0.0 3-1.0 3-2.0 4-0.0 4-1.0 4-2.0
0 1 20 10 5 10 5 20
1 2 21 11 6 11 6 21
2 3 19 29 7 29 7 19
3 4 18 12 8 12 8 18
正在做:
unique_people = df.filter(regex='\d-').columns.str.split('-').str[0].unique()
out = pd.wide_to_long(df, stubnames=unique_people, i='id', j='instance', sep='-', suffix='.*')
out = out.rename(int, level=1)
print(out.sort_index())
输出:
3 4
id instance
1 0 20 10
1 10 5
2 5 20
2 0 21 11
1 11 6
2 6 21
3 0 19 29
1 29 7
2 7 19
4 0 18 12
1 12 8
2 8 18
关于python - 更有效的 pandas 数据帧操作方式 : filtering and melting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72878029/
我有一个这样的DataFrame >>> df = pd.DataFrame([[1,1,2,3,4,5,6],[2,7,8,9,10,11,12]], c
很抱歉,如果这是一个重复的问题,但我找不到问题的答案。 我有一个当前的数据框: 深度 Year Counts Depth.1 Year.1 Counts.1 Depth.2 Year.2 Counts
我正在尝试更改数据集的结构 目前有: RE id Country 0 1 2 ... n 1001 CN,TH CN TH nan ...
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: Error: could not find function … in R 我找到了对函数 melt() 的各种引用
这个问题已经有答案了: How to reshape data from long to wide format (14 个回答) 已关闭 7 年前。 我有像这样的巨大数据框: SN = c(1:10
我有一个小问题,在概念上似乎很简单,但我找不到解决方法... 假设我有一个 data.frame df2,其中有一列列出汽车品牌,另一列包含每个品牌的所有型号,用“,”分隔。我已经获得了 df2 聚合
我想融合 dataframe 以便在一列中我有日期,然后我有用户名作为变量,最后是值。 我收到此错误: Error in as.Date.numeric(value) : 'origin' must
我有几个不同长度的视频剪辑。我想在这些剪辑上混音。 我用这个: melt original.mp4 -audio-track preview.mp3 -transition mix 如果 previe
我目前正在进行一项测试,其中我有不同的区域和一些相关的统计数据,以及位于这些区域的以逗号分隔的基因列表。此列表的数量是可变的,并且可能不包含任何内容 ("NA")。 我怎样才能“融化”这个数据框:
我有一个像这样的宽格式数据集 Index Country Variable 2000 2001 2002 2003 2004 2005 0 Argentina var1
我只想在 pandas 中使用 melt 函数,但我总是遇到同样的错误。 只需键入文档提供的示例: cheese = pd.DataFrame({'first' : ['John', 'Mary'],
在pandas标签上,我经常看到用户询问关于熊猫融化的问题。我将尝试一个规范的Q&A(自我回答)与这个主题。。我要澄清的是:。我看到了一些关于融化的更热门的问题,比如:。使用Pandas将列转换为行:
我有一个如下所示的数据框: Country Person A B C 0 USA Bob 200 300 400 1 Canada Alice 100
例如这是我的数据框 df = pd.DataFrame([['Bob', 'lunch', 70], ['Bob', 'dinner', 160],
我有下面的 SQL 表,我们称之为teams_score,它显示了一场比赛的 2 名球员的球队及其得分。每次他们以 Player1 或 Player2 出现在团队中时,我都需要观察每个球员的得分。我认
我有一个如下所示的数据框: 名称 值 1 值 2 A 100 101 A 100 102 A 100 103 B 200 201 B 200 202 B 200 203 C 300 301 C 30
假设我有以下 data.frame: foo foo CONTACT_DATE ISSUE ISSUE_COUNT RANK 1 2015-09-15 abc 1000
例如,我有以下 map : {'df1': Jan Feb Mar 1 3 5 2 4 6 '
问题 我发现自己在使用 reshape2::melt获得单个“长”data.frame来自分层 list的 data.frame对象。但是,结果的列名称具有标记为“L1”、“L2”等的列表层次结构级别
我正在尝试融化我的 Pandas 数据框,但我不确定如何正确分配变量。我查看了堆栈上的其他示例,但似乎找不到与此匹配的变体。我的数据框 (df1) 如下所示: [IN]: df1 [OUT]:
我是一名优秀的程序员,十分优秀!