我正在尝试循环将列添加到空数据框中。每列可能有不同的长度。看起来最终的行数是由添加的第一列的长度定义的。长度较长的列将被剪切值。
当列长不同时,如何始终保留每列的所有值?谢谢
这是情况 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
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