首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环,用于根据其他键的名称创建密钥。

循环,用于根据其他键的名称创建密钥。
EN

Stack Overflow用户
提问于 2022-08-10 02:43:20
回答 2查看 58关注 0票数 0

以下是我所掌握的数据的快照:

代码语言:javascript
复制
import pandas as pd
df = pd.DataFrame({
    'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
    'X1': [7,7,7,7,9],
    'X2': [8,9,7,5,6],
})
print(df)

我正在寻找一个循环,将确定多少"X“键我有,然后,根据这些"X”键,它将创建'Y‘键。在上面的例子中,我有X1和X2,因此,新的键是Y1和Y2(请参见下面的代码)。

如果我有X1、X2和X3键,那么循环将自动创建Y1= 1、Y2= 2和Y3= 3键等等。

代码语言:javascript
复制
df2 = pd.DataFrame({
    'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
    'X1': [7,7,7,7,9],
    'X2': [8,9,7,5,6],
    'Y1': [1,1,1,1,1],
    'Y2': [2,2,2,2,2],
})
print(df2)

我怎样才能得到这些想要的结果?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-10 04:22:49

我认为您需要创建基于前一列后缀的值的新列。

代码语言:javascript
复制
import pandas as pd

df = pd.DataFrame({
    'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
    'X1': [7,7,7,7,9],
    'X2': [8,9,7,5,6],
    'X3': [18,19,17,15,16]
})

for col in df.columns:
    if col.startswith('X'):
        df['Y'+col[1:]] = int(col[1:])
print(df)

输出:

代码语言:javascript
复制
     brand  X1  X2  X3 Y1 Y2 Y3
0  Yum Yum   7   8  18  1  2  3
1  Yum Yum   7   9  19  1  2  3
2  Indomie   7   7  17  1  2  3
3  Indomie   7   5  15  1  2  3
4  Indomie   9   6  16  1  2  3
票数 0
EN

Stack Overflow用户

发布于 2022-08-10 02:50:27

你可以这样做:

代码语言:javascript
复制
current_columns = df.columns

for c in current_columns:
    if c[0] == 'X':
        df['y'+c[1:]] = int(c[:1])

print(df.head())
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73300059

复制
相关文章

相似问题

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