这里有一个例子说明为什么大熊猫是一个可怕的 设计的 一起破解库:
import pandas as pd
df = pd.DataFrame()
df['A'] = [1,2,3]
df['B'] = [4,5,6]
print(df)
df1 = df[df.A.apply(lambda x:x == 4)]
df2 = df1[df1.B.apply(lambda x:x == 1)]
print(df2)
Run Code Online (Sandbox Code Playgroud)
这将打印
df
A B
0 1 4
1 2 5
2 3 6
df2
Empty DataFrame
Columns: []
Index: []
Run Code Online (Sandbox Code Playgroud)
注意 how Columns: [],这意味着进一步/选择 ondf2将失败。这是一个大问题,因为这意味着我现在必须在尝试从中进行选择之前始终检查任何表是否为空,这是垃圾行为。
为清楚起见,明智的、深思熟虑的、合理的、未完全破坏的行为是保留列。
任何人都愿意提供一些我可以在数据帧 API 的 hack 集合之上应用的 hack 吗?
Pandas 几乎考虑了我们需要的所有情况,尤其是那些简单的情况
PS:熊猫没什么问题
df1 = df.loc[df.A.apply(lambda x:x == 4)]
df2 = df1.loc[df1.B.apply(lambda x:x == 1)]
df1
Out[53]:
Empty DataFrame
Columns: [A, B]
Index: []
df2
Out[54]:
Empty DataFrame
Columns: [A, B]
Index: []
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |