python - 使用 x,y 坐标从 Pandas 数据框中删除数据并插入到另一个数据框中
问题描述
我正在尝试使用 pandas 在数据框中搜索数据,然后使用收集到的数据将此数据插入到新数据框中的特定位置。
假设我希望我的代码遵循以下内容:
If row contains [A] then
x=data.iloc[<row>, <column selection>]
y=data.iloc[<row>, <column selection>]
z=data.iloc[<row>, <column selection>]
insert x to newdataframe at location (y,z)
所以我想在该行中搜索一个值,然后如果该值存在,则通过新找到的行和预定义的列选择返回该行中的其他值。
然后,其中两个值将充当 x 和 y 坐标,以将 z 值放入新的数据帧中(数据帧已经使用正确的索引和将匹配生成的 x 和 y 值的列制作)。
我尝试过使用各种技术,包括 numpy.where 但还没有成功。我对 python 很陌生,而且我很困惑如何将我希望 python 做的事情翻译成真正的代码!我已经尝试将我的想法转换为真正的代码,但我认为解释我正在尝试做的事情变得更加困难,所以我希望这是有道理的。
感谢您提供的任何帮助!
解决方案
使用示例会更好,但让我们尝试:)
“行包含 [A]”在 pandas 中有点模糊,因为每一行都包含该行所有列的值。所以也许你应该把它想象成“选择列'c'包含A的行”
你可以这样做:data[ data['c']==A ]
. 这将返回data
列 'c' 具有 value的行子集A
。
要为您之前编写的内容提供更像代码的形式:
for i, row in data[ data['c']==A ].iterrows():
x = row['column_of_x']
y = row['column_of_y']
z = row['column_of_z']
之后您在伪代码块中编写的内容与描述不一致。我将坚持描述,其中x
和y
表示位置,并且z
是值。
在这种情况下,您应该使用类似new_data.loc[x,y] = z
.
正如我在最上面提到的那样,最好有一个关于你拥有什么以及你想要拥有什么的最小示例。我觉得这个问题可以很容易地解决pandas.DataFrame.groupby()
。
推荐阅读
- docker-compose - kafka 控制中心 - 不在 localhost:9021 中收听不工作
- matlab - 三个变量f(x,y,z)的函数的4D平滑样条?
- r - wgcna goodSamplesGenes 关于基因太少的错误
- java - 如何注册可以被多个WAR共享的bean(Spring boot + Tomcat)
- r - rmarkdown 的 PDF 输出中的边距太宽
- swift - 为什么不在 Swift 中使用基于结构的单例
- python-3.x - 如何在使用 librosa 时释放内存
- javascript - 带有 Javascript 的 ASP.NET Core DateTime Rest API 转换为 UTC 而不是 java
- prometheus - 在 PromQL 中加入两个指标
- python - 如何输出没有空格的句子或短语?