python - 为什么使用索引匹配列将 Series 连接到 DataFrame 不起作用?

标签 python pandas dataframe append concatenation

我想将一个 Series append 到 DataFrame,其中 Series 的索引使用 pd.concat 与 DataFrame 的列匹配,但这给了我惊喜:

df = pd.DataFrame(columns=['a', 'b'])
sr = pd.Series(data=[1,2], index=['a', 'b'], name=1)
pd.concat([df, sr], axis=0)
Out[11]: 
     a    b    0
a  NaN  NaN  1.0
b  NaN  NaN  2.0

我所期望的当然是:

df.append(sr)
Out[14]: 
   a  b
1  1  2

令我惊讶的是,pd.concat 不支持索引列。那么,如果我想将一个 Series 作为新行连接到 DF,那么我只能使用 df.append 来代替吗?

最佳答案

需要 to_frame 提供的 Series 中的 DataFrame并转置:

a = pd.concat([df, sr.to_frame(1).T])
print (a)
   a  b
1  1  2

详细信息:

print (sr.to_frame(1).T)
   a  b
1  1  2

或者使用setting with enlargement :

df.loc[1] = sr
print (df)
   a  b
1  1  2

关于python - 为什么使用索引匹配列将 Series 连接到 DataFrame 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47090309/

相关文章:

python - 在 FFT 频率下计算 dFT

python - 导入我的 'random' 文件时脚本失败

python - 用 fillna 替换空值仍然会在 Pandas 中返回空值

python - 将无法转换为整数的值替换为零 python pandas

python - 无法在 MacOS : 'zsh: command not found: nvm' 上使用 nvm install

python - MATLAB在NumPy/Python中的流畅实现(n点移动平均)

python - 在 insert() 中调用变量

python - 如何根据条件从数据框中交叉制表列?

r - R中根据多个条件计算字符出现次数

python - 对数据框进行均等切片并以不同名称存储