如何将数据框扩展到列表长度?

时间:2019-07-26 22:21:05

标签: python pandas dataframe series

我正在使用代码使用列表更新我的专栏。只要列表长度比df索引短,它就可以工作,因为我正在使用一种变通方法代码,即通过使用pd.series更新列。这就是我的意思。

import pandas as pd

data = [
    ['a' , 'Hello'],
    ['b', 'Hi There'],
    ['c', 'Hola'],
    ['d']
]

df = pd.DataFrame(data, columns=['ColA', 'ColB'])

temp = list(df['ColB'].dropna())
temp.append('Sup')
temp.append('Chao')
df['ColB'] = pd.Series(temp)

print(temp)

df

输出:

['Hello', 'Hi There', 'Hola', 'Sup', 'Chao']

Out[1]:
    ColA    ColB
0   a       Hello
1   b       Hi There
2   c       Hola
3   d       Sup

列表中有5个元素,但是由于原始帧的索引长度为4,因此它不包含最后一个元素“ Chao”。

1 个答案:

答案 0 :(得分:0)

col = 'ColB'
temp = list(df[col].dropna())
df = df.drop(columns= col )
temp.append('Sup')
temp.append('Chao')
pd.concat([df, pd.DataFrame(temp).rename(columns ={0:'ColB'})], axis=1 )

ColA    ColB
0   a   Hello
1   b   Hi There
2   c   Hola
3   d   Sup
4   NaN Chao

这可能效率不高,但是您可以删除列,追加列表,然后在将列重命名回原始名称时使用concat。