如何用包含字符串值的列表填充 Pandas 数据框列

新手上路,请多包涵

我有一个包含 142 行的数据框。我创建了一个新专栏。我想用包含字符串的列表填充这个新列。

 my_list = ['abc','def','hig']
df['names'] = df['names'].fill(my_list) #pseudo code

我想以相同的顺序用列表中的字符串值填充“名称”列中的所有 142 行。

 The output should be as:

     names
   1 abc
   2 def
   3 hig
   4 abc
   5 def

原文由 Nishanth 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 487
2 个回答

我想你需要像下面这样的东西 np.resize 它将根据数据帧调整列表的大小。

示例数据框:

 df = pd.DataFrame(np.random.randint(0,100,size=(5,4)),columns=list('ABCD'))

    A   B   C   D
0  10  99   0  61
1  55   0  52  53
2  34  88  79  54
3  25  32   1  89
4  39  30  77   5

解决方案:

 mylist=['abc','def','hig']
df['names'] = np.resize(mylist,len(df))
print(df)


     A   B   C   D names
0  10  99   0  61   abc
1  55   0  52  53   def
2  34  88  79  54   hig
3  25  32   1  89   abc
4  39  30  77   5   def

原文由 anky 发布,翻译遵循 CC BY-SA 4.0 许可协议

你几乎拥有它。尝试这个,

 import pandas as pd
list = ['abc','def','hig']
df=pd.DataFrame(list)
df.columns=['names'] #provides a name for the column

df_repeated = pd.concat([df]*48, ignore_index=True)

这给你 48*3=144 行。然后,

 df_repeated =df_repeated.reindex(df_repeated.index.drop(144)).reset_index(drop=True)

原文由 merit_2 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题