python - 根据其他列中给出的值在 pandas 数据帧上生成 n 数量的新行
问题描述
因此,我有以下示例数据框(为了清晰/简单起见,仅包含一行):
df = pd.DataFrame({'base_number': [2],
'std_dev': [1]})
df['amount_needed'] = 5
df['upper_bound'] = df['base_number'] + df['std_dev']
df['lower_bound'] = df['base_number'] - df['std_dev']
对于每个给定的行,我想生成行数,使得每行的总数是由给出的数字df['amount_needed']
(在这个例子中是 5)。我希望这 5 个新行分布在由df['upper_bound']
和给出的范围内df['lower_bound']
。因此,对于上面的示例,我希望将以下结果作为输出:
df_new = pd.DataFrame({'base_number': [1, 1.5, 2, 2.5, 3]})
当然,这个过程将针对更大数据框中的所有行完成,还有许多与这个特定问题无关的其他列,这就是为什么我试图找到一种方法来自动化这个过程。
解决方案
一行df
将创建一个系列(或一个数据框)。这是迭代df
并使用您指定的值创建系列的一种方法:
for row in df.itertuples():
arr = np.linspace(row.lower_bound,
row.upper_bound,
row.amount_needed)
s = pd.Series(arr).rename('base_number')
print(s)
0 1.0
1 1.5
2 2.0
3 2.5
4 3.0
Name: base_number, dtype: float64
推荐阅读
- python - 有人可以解释这个异常值删除功能在做什么吗?
- dictionary - Elixir 按条件过滤映射条目
- java - 线程“主”java.util.NoSuchElementException 中的异常:当我关闭扫描仪时未找到行
- java - 我们如何在 Java 中以字节/Kb/mb 为单位计算 JsonNode 的大小?
- powershell - 如何使用powershell替换Javascript(js)文件中的变量值
- neo4j - 在 Neo4j 中,如果您的图形太大而无法放入内存,是否可以创建图形投影?我的非常大的图表估计为 152GB
- react-native - 发布请求没有给出正确的响应(Android)
- algorithm - 如何在图中找到不包含集合中节点的路径?
- ios - SwiftUI 流程完成/完成后如何返回 UIViewController?
- python - 如何更改 element.style python selenium 中的值?