首页 > 解决方案 > 创建返回两个文件的函数

问题描述

我有这个数据框:

data = {'X_1': [1, 10, 2, 5, 0], 'X_2': [11, 30, 16, 31, 31], 'X_3': ['Yes', 'No', 'No', 'Yes', 'No']}  
df = pd.DataFrame(data)  
print(df) 

   X_1  X_2  X_3
0    1   11  Yes
1   10   30   No
2    2   16   No
3    5   31  Yes
4    0   31   No

我想创建一个函数,它接收数据帧作为参数并返回两个 xlsx 文件。一个具有变量 X_3 的值等于“否”的行,另一个具有其中 X_3 的值等于“是”的行。

我试图这样做,但我不知道如何创建返回我需要的两个文件的函数。

def preprocess (df):
    for i in X_3:
        if df.loc[data['X_3'] != 'Yes']:
            return data, data_2

我期望返回的 xlsx 文件是这样的:

xlsx 文件 #1:

   X_1  X_2  X_3
1   10   30   No
2    2   16   No
4    0   31   No

xlsx 文件 #2:

   X_1  X_2  X_3
0    1   11  Yes
3    5   31  Yes

谢谢!

标签: functionxlsx

解决方案


使用此页面的任何一种好方法,那里有 3 种非常好的方法。:

import pandas as pd
data = {'X_1': [1, 10, 2, 5, 0], 'X_2': [11, 30, 16, 31, 31], 'X_3': ['Yes', 'No', 'No', 'Yes', 'No']}
df = pd.DataFrame(data)
#print(df)

def mysplit (a):
    df1 = df[df['X_3'] == 'Yes']
    df2 = df[df['X_3'] == 'No']
    print(df1,file=open("file_a.xls", "a", encoding="utf-8"))
    print(df2,file=open("file_b.xls", "a", encoding="utf-8"))
    return
mysplit(df)

我知道你说的是 xlsx,但原理也适用于 excel writer。


推荐阅读