繁体   English   中英

Python Pandas - 根据指定条件返回数据并防止真假值

[英]Python Pandas - Returning Data based on specified conditions and prevent true false values

我有一个简单的数据框,它在某种程度上提供了我想要的输出。 下面是代码和输出

import pandas as pd
import numpy as np
data = {'A': [1,2,3,4,5,6,7,8], 'B': [5,8,9,10,11,12,13,14]}
df = pd.DataFrame(data)
df1 = df['A'] > 4, df['A']
df2 = df['B'] <13, df['B']
df3 = df1 + df2
print(df3)

输出

>>> print(df3)
(0    False
1    False
2    False
3    False
4     True
5     True
6     True
7     True
Name: A, dtype: bool, 0    1
1    2
2    3
3    4
4    5
5    6
6    7
7    8
Name: A, dtype: int64, 0     True
1     True
2     True
3     True
4     True
5     True
6    False
7    False
Name: B, dtype: bool, 0     5
1     8
2     9
3    10
4    11
5    12
6    13
7    14
Name: B, dtype: int64)

我的问题是,如何防止输出打印真假值,因为我只对具有这些值的数据帧感兴趣

Desired output
 1    2
    2    3
    3    4
    4    5
    5    6
    6    7
    7    8

1     8
    2     9
    3    10
    4    11
    5    12
    6    13
    7    14

所需的输出是两个单独的数据帧,仅包含没有真/假输出的值

这应该工作:

import pandas as pd 
data = {'A': [0.1,0.2,0.1,0.2,5,6,7,8], 'B': [5,0.2,4,8,11,9,10,14]}
df = pd.DataFrame(data)

df1 = df[df.A >= 0.4]
print(df1) 

#    A     B
#4  5.0  11.0
#5  6.0   9.0
#6  7.0  10.0
#7  8.0  14.0

df2 = df[df.A < 0.4]
print(df2) 


#     A    B
#0  0.1  5.0
#1  0.2  0.2
#2  0.1  4.0
#3  0.2  8.0

df3 = pd.concat([df1, df2])
print(df3) 

#    A     B
#4  5.0  11.0
#5  6.0   9.0
#6  7.0  10.0
#7  8.0  14.0
#0  0.1   5.0
#1  0.2   0.2
#2  0.1   4.0
#3  0.2   8.0

我想通了。 下面为我提供了预期的输出

data = {'A': [1,2,3,4,5,6,7,8], 'B': [5,8,9,10,11,12,13,14]}
df = pd.DataFrame(data)
df1 = df[df.A > 4]
df2 = df[df.A <13]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM