如何修改pandas的insert方法,让DataFrame列单元格存入同一列表?
实现每个单元格存入列表的方法
要让插入的'A'列每个单元格都存储['Hello','world!'],你需要确保insert方法的value参数是一个每个元素都是目标列表的序列,且长度与DataFrame的行数一致。以下是两种可行的写法:
方法一:列表推导式
df = pd.DataFrame(data=[['a','b'],['c','d']], columns=['B','C']) df.insert(loc=0, column='A', value=[['Hello','world!'] for _ in df])
方法二:利用Series构造
df = pd.DataFrame(data=[['a','b'],['c','d']], columns=['B','C']) df.insert(loc=0, column='A', value=pd.Series([['Hello','world!']]*len(df)))
原理说明
当你直接传入value=['Hello','world!']时,pandas会将该列表视为列的逐行值,因此会把列表的第一个元素分配给第一行,第二个元素分配给第二行。而通过构造一个每个元素都是目标列表的序列,pandas会将序列中的每个列表作为单个单元格的值存入对应行。
内容的提问来源于stack exchange,提问作者principal-ideal-domain
相关产品推荐
相关产品推荐

