如何在Python中将不均衡的列表添加到数据框中?

3

这是我的数据框和列表


X  Y  Z  X1
1  2  3  3
2  7  2  6
3 10  5  4
4  3  7  9
5  3  3  4

list1=[3,5,6]
list2=[4,3,7,4]

我想将列表添加到数据框中,我尝试了一些代码但出现错误,某些地方无法正常工作。

#Expected Output

X  Y  Z  X1
1  2  3  3
2  7  2  6
3 10  5  4
4  3  7  9
5  3  3  4
3        4
5        3
6        7
         4    


#here is my code

list1 = [3,5, 6]
df_length = len(df1) 
df1.loc[df_length] = list1


请帮我解决这个问题。提前致谢。

展示你的代码和你遇到的错误... - Sabito stands with Ukraine
list1 = [3,5, 6] df_length = len(df1) df1.loc[df_length] = list1 - Coder
1
编辑您的帖子并将它们添加进去...不要在评论中添加。 - Sabito stands with Ukraine
这个回答解决了你的问题吗?如何将列表附加到pandas列、系列中? - PV8
1
@PV8 这个问题与你所建议的完全不同。那并没有回答 OP 的问题。 - Ch3steR
1
很高兴能帮忙 ;) - Ch3steR
2个回答

3
使用series.append()函数创建新系列(XX1),并使用pd.concat()函数创建输出df
s1 = df.X.append(pd.Series(list1)).reset_index(drop=True)
s2 = df.X1.append(pd.Series(list2)).reset_index(drop=True)

df = pd.concat([s1, df.Y, df.Z, s2], axis=1).rename(columns={0: 'X', 1: 'X1'})

df
    X   Y       Z   X1
0   1.0 2.0     3.0 3
1   2.0 7.0     2.0 6
2   3.0 10.0    5.0 4
3   4.0 3.0     7.0 9
4   5.0 3.0     3.0 4
5   3.0 NaN     NaN 4
6   5.0 NaN     NaN 3
7   6.0 NaN     NaN 7
8   NaN NaN     NaN 4

2
这将会得到预期的结果! - CHRD
我不确定你在索引方面的意思。如果不是0,它应该从哪里开始? - CHRD
1
太好了!如果解决了您的问题,请随意接受。干杯! - CHRD
1
当然会做到。 - Coder
2
@CHRD 很好的回答 +1 - Ch3steR
显示剩余7条评论

3
'''
X  Y  Z  X1
1  2  3  3
2  7  2  6
3 10  5  4
4  3  7  9
5  3  3  4
'''

list1=[3,5,6]
list2=[4,3,7,4]
ls_empty=[]

import pandas as pd
import numpy as np

df = pd.read_clipboard()


df1 = pd.DataFrame([list1, ls_empty, ls_empty, list2])
df1 = df1.T
df1.columns = df.columns

df2 = pd.concat([df, df1]).replace(np.nan, '', regex=True).reset_index(drop=True).astype({'X1': int})



print(df2)

输出:

   X   Y  Z  X1
0  1   2  3   3
1  2   7  2   6
2  3  10  5   4
3  4   3  7   9
4  5   3  3   4
5  3          4
6  5          3
7  6          7
8             4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接