gpt4 book ai didi

python - 创建 Pandas DataFrame 时跳过具有更多列的项目

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:53 25 4
gpt4 key购买 nike

我有一个列表列表:

list = [
['Row 1','Value 1'],
['Row 2', 'Value 2'],
['Row 3', 'Value 3', 'Value 4']
]

我有一个数据帧标题列表:

header_list = ['RowID', 'Value']

如果我使用df = pd.DataFrame(list, columns = header_list)创建DataFrame,那么python会通过我显示一个错误,指出Row3有超过2列,与 header_list 不一致。

那么在创建DataFrame时如何跳过第3行。以及如何通过“就地”计算来实现这一点,这意味着不创建一个循环原始列表并使用 length=2 附加项目的新列表。

感谢您的帮助!

最佳答案

首先将变量list更改为L,因为list是Python代码保留字。

然后对于过滤器使用列表理解:

L = [['Row 1','Value 1'], ['Row 2', 'Value 2'], ['Row 3', 'Value 3', 'Value 4']]

#for omit all rows != 2
df = pd.DataFrame([x for x in L if len(x) == 2], columns = header_list)
print (df)
RowID Value
0 Row 1 Value 1
1 Row 2 Value 2
<小时/>
#filter last 2 values if len != 2
df = pd.DataFrame([x if len(x) == 2 else x[-2:] for x in L], columns = header_list)
print (df)
RowID Value
0 Row 1 Value 1
1 Row 2 Value 2
2 Value 3 Value 4

或者:

#filter first 2 values if len != 2
df = pd.DataFrame([x if len(x) == 2 else x[:2] for x in L], columns = header_list)
print (df)
RowID Value
0 Row 1 Value 1
1 Row 2 Value 2
2 Row 3 Value 3

关于python - 创建 Pandas DataFrame 时跳过具有更多列的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47029744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com