Python 带有不等长列的熊猫数据框将用NA s填充
我想创建一个包含两列的数据框:Python中的deneme和deneme2Python 带有不等长列的熊猫数据框将用NA s填充,python,pandas,dataframe,Python,Pandas,Dataframe,我想创建一个包含两列的数据框:Python中的deneme和deneme2 deneme = [1, 2, 3, 4] deneme2 = ['a', 'b', 'c'] 它们应该是这样的: 这意味着这两个列表应该在相同的长度上,如果它们不是,并且如果在末尾有一个元素,这意味着第三行必须是NA 我怎么能做这样的事 将它们直接放入数据帧中,例如: pd.DataFrame(deneme, deneme2) 不起作用。 谢谢大家! 您可以这样做: In [928]: deneme = [
deneme = [1, 2, 3, 4]
deneme2 = ['a', 'b', 'c']
它们应该是这样的:
这意味着这两个列表应该在相同的长度上,如果它们不是,并且如果在末尾有一个元素,这意味着第三行必须是NA
我怎么能做这样的事
将它们直接放入数据帧中,例如:
pd.DataFrame(deneme, deneme2)
不起作用。
谢谢大家! 您可以这样做:
In [928]: deneme = [1, 2, 3, 4]
...: deneme2 = ['a', 'b', 'c']
In [929]: if len(deneme) != len(deneme2):
...: deneme2.insert(2, '')
...:
In [930]: df = pd.DataFrame({'deneme': deneme, 'deneme2': deneme2})
In [931]: df
Out[931]:
deneme deneme2
0 1 a
1 2 b
2 3
3 4 c
如果需要将空值插入到特定记录中,则需要在相应位置指定
None
:
import pandas as pd
deneme = [1, 2, 3, 4]
deneme2 = ['a', 'b', None, 'c']
df = pd.DataFrame({'deneme': deneme, 'deneme2': deneme2})
输出将是
deneme deneme2
0 1 a
1 2 b
2 3 None
3 4 c
deneme deneme2
0 1 a
1 2 b
2 3 c
3 4 None
如果要在末尾添加空值,可以使用
itertools.zip\u longest
:
import pandas as pd
import itertools
deneme = [1, 2, 3, 4]
deneme2 = ['a', 'b','c']
df = pd.DataFrame((e for e in itertools.zip_longest(deneme, deneme2)), columns=['deneme', 'deneme2'])
输出将是
deneme deneme2
0 1 a
1 2 b
2 3 None
3 4 c
deneme deneme2
0 1 a
1 2 b
2 3 c
3 4 None
只需3步
out = pd.DataFrame({'deneme':deneme})
out.loc[:len(deneme2)-2,'deneme2'] = deneme2[:-1]
out.loc[len(deneme2),'deneme2'] = deneme2[-1]
out
Out[456]:
deneme deneme2
0 1 a
1 2 b
2 3 NaN
3 4 c
谢谢大家@SimChana31如果答案有所帮助,请考虑投票。