Python 获取列的名称并在dataframe中从中创建数据

Python 获取列的名称并在dataframe中从中创建数据,python,pandas,dataframe,lambda,Python,Pandas,Dataframe,Lambda,我目前正在尝试根据同一数据帧的另一列[X]的名称生成新列[Y,Z]。问题是我无法获取列的名称并将其作为数据传递给新列 我正在尝试这样的事情: df['Y'] = df.assign(lambda c: df.columns.values['X']) df['Z'] = df.apply(lambda c: df.columns.values['X']) >>> df_original name example_col 0 shakir 33 1

我目前正在尝试根据同一数据帧的另一列[X]的名称生成新列[Y,Z]。问题是我无法获取列的名称并将其作为数据传递给新列

我正在尝试这样的事情:

df['Y'] = df.assign(lambda c: df.columns.values['X'])
df['Z'] = df.apply(lambda c: df.columns.values['X'])
>>> df_original
       name  example_col
  0  shakir   33
  1   rafiq   37
  2     dev   36
  3   suraj   30

>>> df_new
       name  new_col        value
  0  shakir   example_col    33
  1   rafiq   example_col    37
  2     dev   example_col    36
  3   suraj   example_col    30
例如,dataframe的外观如下所示:

df['Y'] = df.assign(lambda c: df.columns.values['X'])
df['Z'] = df.apply(lambda c: df.columns.values['X'])
>>> df_original
       name  example_col
  0  shakir   33
  1   rafiq   37
  2     dev   36
  3   suraj   30

>>> df_new
       name  new_col        value
  0  shakir   example_col    33
  1   rafiq   example_col    37
  2     dev   example_col    36
  3   suraj   example_col    30
但我离解决方案还不太近,我已经尝试了各种方法…:(

请告诉我该去哪里

提前感谢您的时间,我会留意您的回答


尊敬!

假设您知道要复制其名称的列的索引,则:

df_new=df_original.copy()
df_new.loc[:,'new_col']=df_new.columns[1]
根据编辑的帖子更新了答案: 例如:

>>> df
     name  example_col
0  shakir           33
1   rafiq           37
2     dev           36
3   suraj           30
解决方案: 您可以尝试使用
set_index()
rename
将新的默认值设置为
level_1
&
0
,如下所示:

>>> df.set_index('name').stack().reset_index().rename(columns={'level_1': 'new_col', 0:'value'})
     name      new_col  value
0  shakir  example_col     33
1   rafiq  example_col     37
2     dev  example_col     36
3   suraj  example_col     30
或者-您可以尝试:


Gonza,如果你能举例说明你的数据帧的样子和你想要的输出,我会很高兴,这会在你的帖子上引起正确的注意。可能你在寻找什么东西
df['Y']=df.apply(lambda x:x['x'],axis=1)
?谢谢你的回答,克里斯,我正在查看你的评论,问题是我不需要反转列的数据,我只需要将列的名称分配给同一数据帧的新列,并对所有记录重复它的值。非常感谢你!Gonza能给你一个输入和输出的示例吗你的目标是什么?谢谢克里斯的帮助,是的,我刚刚用一个更清晰的例子修改了我的帖子。非常感谢!!非常感谢你的帮助!!!是的,就是这样,终于!!:)对不起,克里斯!!,我没有给你分数的级别,当我有分数时,他们正在等待;)非常感谢您的帮助和想法,我做出了改变,以便更好地解释自己!感谢是的,这是伟大的,因为它为我需要做的下一件事开辟了道路,非常感谢!!我再次感谢你,因为你告诉我的功能很棒!非常感谢你的朋友!!