首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何返回单元格的列标题,将其与另一个值组合,并将其存储在新的dataframe中?

如何返回单元格的列标题,将其与另一个值组合,并将其存储在新的dataframe中?
EN

Stack Overflow用户
提问于 2022-04-01 00:07:39
回答 3查看 57关注 0票数 0

如果一个单元格的值不是“”,我就有一个数据。然后,我需要python返回单元格的列标题和校园号。

最终结果应该是一个包含列标题和校园编号的新数据或列表。细胞内的值是什么并不重要,只要它不是“。

我尝试使用以下for循环语句: df是原始的dataframe,df2是新的dataframe,应该具有列名和校园名称。

代码语言:javascript
运行
复制
for i in df.iterrows():
 if df[i] == ".":
   i = i + 1
 else:
   df2[i] = df[i].value + "" + df.col()
   i = i + 1
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-04-01 00:20:07

通过堆叠降低问题的维数可以简化,因为您可以简单地查询索引。

代码语言:javascript
运行
复制
temp =  df.set_index('Campus').stack()
result_list = temp.loc[temp!='.'].index.values
票数 0
EN

Stack Overflow用户

发布于 2022-04-01 00:38:57

我发现最简单的方法就是

代码语言:javascript
运行
复制
df2 = df.where(df!='.')
df2 = df2.dropna()

第一行复制整个df,但替换所有'.‘。可以用NaN ()删除。

票数 0
EN

Stack Overflow用户

发布于 2022-04-01 01:13:40

您是否可以尝试用NaN替换不需要的值,然后进行堆叠?

代码语言:javascript
运行
复制
df.replace('.', pd.NA).stack().index.to_list()

示例:

代码语言:javascript
运行
复制
# input
   A  B  C
0  .  2  .
1  1  .  .
2  .  3  .

# output
[(0, 'B'), (1, 'A'), (2, 'B')]

若要首先使用列,请使用:

代码语言:javascript
运行
复制
df.replace('.', pd.NA).T.stack().index.to_list()
# [('A', 1), ('B', 0), ('B', 2)]

或者,对于自上而下的订单:

代码语言:javascript
运行
复制
df.replace('.', pd.NA).stack().swaplevel().index.to_list()
# [('B', 0), ('A', 1), ('B', 2)]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71700439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档