表通常有m行和n列。但是我们能在python中创建混乱的表吗?
比如:
1 2 3
4 5
6 7 8 9R编程语言具有自动填充空白或未初始化单元格的“NA”功能。例如,如果我们在R中制作上表,它将类似于:
1 2 3 NA
4 5 NA NA
6 7 8 9R将根据最大列表自动创建m行。最大列意味着,如果我们再添加一个列比现有表多的行,则R将自动创建新列,并用'NA‘初始化前几行的新列。例如,如果我们添加[A, B, C, D, E, F]作为我的新行。那么R的结果将是:
1 2 3 NA NA NA
4 5 NA NA NA NA
6 7 8 9 NA NA
A B C D E F那么,我们在python中有这种功能吗?
发布于 2017-08-30 05:56:42
是的,熊猫也是这样做的。例如,下面是将两个具有不同长度列的数据文件连接在一起的示例:
>>> import pandas as pd
>>> df = pd.DataFrame({"A":[1,2,3],"B":[2,65,4]})
>>> df
A B
0 1 2
1 2 65
2 3 4
>>> df1 = pd.DataFrame({"C":[1,2,3,5],"D":[2,65,4,8]})
>>> df1
C D
0 1 2
1 2 65
2 3 4
3 5 8
>>> pd.concat([df, df1], axis=1)
A B C D
0 1.0 2.0 1 2
1 2.0 65.0 2 65
2 3.0 4.0 3 4
3 NaN NaN 5 8
>>> 正如您所看到的,熊猫在第三行中填充了NaN,用于较短的列A和B。
在沿行连接时也可以看到同样的情况,例如:
>>> df2 = pd.DataFrame({"A":[5,8,4,9],"B":[8,6,9,4],"C":[4,6,8,2]})
>>> df2
A B C
0 5 8 4
1 8 6 6
2 4 9 8
3 9 4 2
>>> df
A B
0 1 2
1 2 65
2 3 4
>>> pd.concat([df, df2], axis=0)
A B C
0 1 2 NaN
1 2 65 NaN
2 3 4 NaN
0 5 8 4.0
1 8 6 6.0
2 4 9 8.0
3 9 4 2.0
>>> 发布于 2017-08-30 06:11:47
只需将列表列表传递给构造函数即可。
pd.DataFrame([[1, 2, 3], [4, 5], [6, 7, 8, 9]], dtype=float)
0 1 2 3
0 1.0 2.0 3.0 NaN
1 4.0 5.0 NaN NaN
2 6.0 7.0 8.0 9.0并添加一个新行
df = pd.DataFrame([[1, 2, 3], [4, 5], [6, 7, 8, 9]], dtype=float)
df.append(pd.Series([2.1, 3.4, 5.6, 0.1, 7.5, 9.3], name=3))
0 1 2 3 4 5
0 1.0 2.0 3.0 NaN NaN NaN
1 4.0 5.0 NaN NaN NaN NaN
2 6.0 7.0 8.0 9.0 NaN NaN
3 2.1 3.4 5.6 0.1 7.5 9.3https://stackoverflow.com/questions/45952729
复制相似问题