【发布时间】:2020-06-07 16:25:39
【问题描述】:
我有一个 pandas df,其中包含前两列代表其他列的位置。但是,具体的字符串会根据输入数据而变化。所以我想使用字符串并替换为其他列。
使用下面的 df,我们有相似的 col 名称。
df = pd.DataFrame({
'Foo_somestring' : ['X','X','X'],
'Bar bar_somestring' : ['X','X','X'],
'GroupA_somestring' : ['X','X','X'],
'GroupB_somestring' : ['X','X','X'],
'GroupA_some_other_string' : ['X','X','X'],
'GroupB_some_other_string' : ['X','X','X'],
})
预期输出:
df = pd.DataFrame({
'Foo_somestring' : ['X','X','X'],
'Bar bar_somestring' : ['X','X','X'],
'Foo_somestring' : ['X','X','X'],
'Bar bar_somestring' : ['X','X','X'],
'Foo_some_other_string' : ['X','X','X'],
'Bar bar_some_other_string' : ['X','X','X'],
})
我不能在这里使用df.rename,因为foo 和bar 将是可变的,因为它们会根据输入数据集而变化。例如,前两个 col 值可以是 Dog 和 Cat。
我必须手动确定col values,然后替换。如果我必须多次完成该过程,这将变得低效。
所以我需要一些不是硬编码但需要前两个 col values 的东西。
【问题讨论】:
-
您的输入和输出列名称令人困惑。请简化。
-
我的回答能回答你的问题吗?你可以试试它的一些变种。