处理pandas数据帧碎片的非官方便利功能。

pandas-refract的Python项目详细描述


pandas refract是一个麻省理工学院许可的python包,它有一个简单的函数,允许用户划分 由所提供数组的“truthy”和“falsyness”生成的数据帧。

因为这个库处理按其值分割数据帧的问题,所以它使用光线折射和散射的图像,就像光线进入棱镜一样。 最后,这个包的目标是熊猫库的附加功能,允许用户.pop行 从一个满足条件的数据帧中,等等。据我所知,这是不可能的,就像下面的例子。

理想情况是:

target_df = df.pop(df['target_column'] == 'target_value')
non_target_df = df

现在需要的是:

target_df = df[df['target_column'] == 'target_value']
non_target_df = df[df['target_column'] != 'target_value']

当熊猫折射时,它变成:

target_df, non_target_df = refract(df, df['target_column'] == 'target_value']]

显然,这个包没有提供当前熊猫库中当前不可能提供的任何内容。是的, 但是,为更复杂的切片添加一层便利,您需要按条件分隔而不是移除行。

示例

当前熊猫的最简单示例需要:

df1 = df[df.column.notnull()].reset_index(drop=True)
df2 = df[df.column.isnull()].reset_index(drop=True)

或:

df1 = df[df.column == 'test_string'].reset_index(drop=True)
df2 = df[df.column != 'test_string'].reset_index(drop=True)

当熊猫折射时,它变成:

df1, df2 = refract(df, df.column.notnull(), True]

以及:

df1, df2 = refract(df, df.column == test_string', True]

但不必传递显式布尔数组:

data = {'a': ['', 'truthy', '', 'truthy'],
        'b': [0, 1, 2, 3]
        }

df = pd.DataFrame(data)

truthy_df, falsey_df = refract(df, df.a)

更复杂的例子: (其中“a”为假,“b”为奇数)

df1, df2 = refract(df, ((~df.a) & (df.b % 2 == 1)))

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaBridge errno=10054被Remotehost关闭   javafx如何在每次调用方法中的变量时更新它?(爪哇)   java mod_群集在发现后未平衡负载   Java软件编辑器/语法高亮   java为什么不能强制转换数组的结果。asList()到ArrayList?   java HIBERNATE:无法使用HIBERNATE从MySQL中提取数据   java在Google地图片段上添加布局   java在AbstractTableModel中执行setValueAt之前,我如何做一些事情?   java在整个Tomcat运行时保存变量   java如何在Thymeleaf模板中获取环境变量的值?   java Selenium Chrome驱动程序针对属性的标签   java正则表达式捕获未知数量的重复组