Pandas 数据框,空的或有 3 列要 pickle
Pandas dataframe, empty or with 3 column to pickle
我根本不习惯pandas,所以我的问题有几个问题。
我有一个函数计算一个名为 solutions
的列表。此列表可以由 3 个值的元组组成 (a, b, c)
或为空。
solutions = [(a,b,c), (d,e,f), (g,h,i)]
为了保存,我先把它变成了一个numpy数组,然后在命名列之后用pandas保存。
solutions = np.asarray(solutions)
df = pd.DataFrame(solutions)
df.columns = ["Name1", "Name2", "Name3"]
df.to_pickle(path)
我的问题是有时我的解决方案列表是空的:solutions = []
。因此,行 df.columns
引发错误。为了绕过它,我目前检查解决方案的大小,如果它是空的,我会:
pickle.dump([], path, "wb")
我希望我的数据类型更加一致,并在两种情况下保存相同的格式。
=> 如果列表为空,我想用一个空数据框保存 3 列名称。最终目标是使用 pd.read_pickle()
重新打开文件并轻松访问其中的数据。
第二期,我想重新打开pickled的文件,并添加一列。你能告诉我正确的方法吗?
第三个问题,我如何 select 数据框的一部分。例如,我想要 Name1 value % 0.25 == 0
.
列所在的所有行
谢谢
使用以下方法创建数据框:
df = pandas.DataFrame(data=solutions, columns=['name1', 'name2', 'name3'])
如果 solutions
为空,它仍然会创建一个包含 3 列和 0 行的数据框。
In [2]: pd.DataFrame(data=[(1,2,3), (4,5,6)], columns=['a','b','c'])
Out[2]:
a b c
0 1 2 3
1 4 5 6
In [3]: pd.DataFrame(data=[], columns=['a','b','c'])
Out[3]:
Empty DataFrame
Columns: [a, b, c]
Index: []
第三个问题:
df["Name1"] % 0.25 == 0
计算一系列布尔值,其中第一列中的值可以除以 0.25。您可以将它用于 select 数据框的行:
df[ df["Name1"] % 0.25 == 0 ]
我根本不习惯pandas,所以我的问题有几个问题。
我有一个函数计算一个名为 solutions
的列表。此列表可以由 3 个值的元组组成 (a, b, c)
或为空。
solutions = [(a,b,c), (d,e,f), (g,h,i)]
为了保存,我先把它变成了一个numpy数组,然后在命名列之后用pandas保存。
solutions = np.asarray(solutions)
df = pd.DataFrame(solutions)
df.columns = ["Name1", "Name2", "Name3"]
df.to_pickle(path)
我的问题是有时我的解决方案列表是空的:solutions = []
。因此,行 df.columns
引发错误。为了绕过它,我目前检查解决方案的大小,如果它是空的,我会:
pickle.dump([], path, "wb")
我希望我的数据类型更加一致,并在两种情况下保存相同的格式。
=> 如果列表为空,我想用一个空数据框保存 3 列名称。最终目标是使用 pd.read_pickle()
重新打开文件并轻松访问其中的数据。
第二期,我想重新打开pickled的文件,并添加一列。你能告诉我正确的方法吗?
第三个问题,我如何 select 数据框的一部分。例如,我想要 Name1 value % 0.25 == 0
.
谢谢
使用以下方法创建数据框:
df = pandas.DataFrame(data=solutions, columns=['name1', 'name2', 'name3'])
如果 solutions
为空,它仍然会创建一个包含 3 列和 0 行的数据框。
In [2]: pd.DataFrame(data=[(1,2,3), (4,5,6)], columns=['a','b','c'])
Out[2]:
a b c
0 1 2 3
1 4 5 6
In [3]: pd.DataFrame(data=[], columns=['a','b','c'])
Out[3]:
Empty DataFrame
Columns: [a, b, c]
Index: []
第三个问题:
df["Name1"] % 0.25 == 0
计算一系列布尔值,其中第一列中的值可以除以 0.25。您可以将它用于 select 数据框的行:
df[ df["Name1"] % 0.25 == 0 ]