如何将不同长度的新列添加到现有数据框中

问题描述 投票:0回答:1

我正在尝试循环将列添加到空数据框中。每列可能有不同的长度。看起来最终的行数是由添加的第一列的长度定义的。长度较长的列将被剪切值。

当列长不同时,如何始终保留每列的所有值?谢谢

这是情况 1,第一列的长度较短,然后第二列的值将被削减

import pandas as pd

df_profile=pd.DataFrame()
df_profile['A']=pd.Series([1,2,3,4])

df_profile['B']=pd.Series([10,20,30,40,50,60])

print(df_profile)

   A   B
0  1  10
1  2  20
2  3  30
3  4  40

这里是情况 2,第一列的长度最大,然后找到其他列

import pandas as pd

df_profile=pd.DataFrame()
df_profile['A']=pd.Series([1,2,3,4,5,6,7,8])

df_profile['B']=pd.Series([10,20,30,40,50,60])

df_profile['C']=pd.Series([100,200,300,400,500,600])

df_profile['D']=pd.Series([100,200])

print(df_profile)

   A     B      C      D
0  1  10.0  100.0  100.0
1  2  20.0  200.0  200.0
2  3  30.0  300.0    NaN
3  4  40.0  400.0    NaN
4  5  50.0  500.0    NaN
5  6  60.0  600.0    NaN
6  7   NaN    NaN    NaN
7  8   NaN    NaN    NaN
python pandas
1个回答
1
投票

您可以使用

pd.concat
添加其他系列,例如:

# you have already this dataframe:
df_profile = pd.DataFrame()
df_profile["A"] = pd.Series([1, 2, 3, 4])

# you can use pd.concat to add another Series:
out = pd.concat([df_profile, pd.Series([10, 20, 30, 40, 50, 60], name="B")], axis=1)
print(out)

打印:

     A   B
0  1.0  10
1  2.0  20
2  3.0  30
3  4.0  40
4  NaN  50
5  NaN  60
© www.soinside.com 2019 - 2024. All rights reserved.