python - Pandas DataFrame 列被传递给新的数据数据框
问题描述
我正在尝试使用现有的数据框值创建一个新的数据框。下面的代码接受一个名为 dfhiddencols 的数据框,其中包含 3 列
父、子列表、公式
然后它创建一个名为 newdf 的新数据框,其中有 2 列名为
父母,孩子
然后它遍历每一行 dfhiddencols 以找到特定的模式。当它找到该模式时,它会在 dfnew 中添加一个新行。通过从 dfhiddencols 和匹配的模式字符串中获取父列值。
但是,当添加此新记录时,它会向 newdf 添加 2 个附加列
子列表,公式
创建字典 createrow 时未定义这 2 列。您知道为什么将列传递给新的数据框以及如何避免这种情况吗?
def extracthiddencolumns(dfhiddencols):
newdf = pd.DataFrame(columns=['child', 'parent'])
createrow ={}
for idx, row in dfhiddencols.iterrows():
#if len(str(row['formula'])) > 3:
for formula in row['formula'].split('|||'):
if formula != '' and '??' in formula:
formula = formula.strip('\n')
formula = formula.strip('\t')
for i in re.findall(r"\[\?\?([A-Za-z0-9_]+)\.([A-Za-z0-9_]+)\?\?\]", formula):
strconcat = i[0] + "." + i[1]
parent = row['parent']
createrow = {'child': parent, 'parent': strconcat}
newdf = dfhiddencols.append(createrow, ignore_index=True)
createrow = {}
newdf.drop(columns=['childlist', 'formula'])
return newdf
解决方案
说起来很尴尬,我正在将新记录附加到传递的 DF 中,因此它解释了数据框中出现的新列
推荐阅读
- node-red - 如何在 mosquitto 中更改自动生成的 ID?
- android - rabbitmq 连接被拒绝
- ios - 如何在 Swift 中让多个 ViewController 上的多个“菜单”按钮导航到同一个 VC?
- flutter - POST请求后如何使用响应?
- forms - 在 VueJS 中,如何允许在特定时间长度内输入表单
- c# - 如何向 CRM WebAPI 中的实体添加方列表字段?
- oop - 如何根据对象属性创建内部表?
- c# - 请告诉我我的代码有什么问题。尝试用 C# 连接 .mdf 数据库
- python - 在网格上正确绘制坐标?
- r - 用于 gls 的 Abline 不会绘图