import pandas as pd
arr = pd.read_excel('C:/Users/cdl/Desktop/空值test_1.xlsx',encoding='gbk')
print(arr)
print(arr.dtypes)
numTest timeTest strTest
0 1.0 2017-08-10 one
1 2.0 2018-08-10 two
2 NaN 2019-08-10 NaN
3 3.0 NaT three
4 NaN NaT four
5 4.0 2020-08-10 NaN
numTest float64
timeTest datetime64[ns]
strTest object
dtype: object
获取符合条件的行:
以下的代码是获取DataFrame中numTest列的值大于2的行内容
arr1 = arr[arr['numTest']>2]
print(arr1)
numTest timeTest strTest
3 3.0 NaT three
5 4.0 2020-08-10 NaN
如果想要获取哪几行符合条件,也就是获取符合条件的行的索引值,操作如下:
result = arr[arr['numTest']>2].index.tolist()
print(result)
[3, 5]
如果想要获取符合条件的行的其他列,也就是相当于Excel中VLOOKUP的功能,可以考虑把要取的行设为索引,如下:
arr = arr.set_index("timeTest")
print(arr)
result = arr[arr['numTest']>2].index.tolist()
print(arr1)
print(result)
numTest strTest
timeTest
2017-08-10 1.0 one
2018-08-10 2.0 two
2019-08-10 NaN NaN
NaT 3.0 three
NaT NaN four
2020-08-10 4.0 NaN
numTest timeTest strTest
3 3.0 NaT three
5 4.0 2020-08-10 NaN
[NaT, Timestamp('2020-08-10 00:00:00')]
也可以不改变索引,直接获取过滤后的DataFrame中的特定列:
arr1 = arr[arr['numTest']>2]['timeTest']
print(arr1)
3 NaT
5 2020-08-10
Name: timeTest, dtype: datetime64[ns]
(作者:陈玓玏)使用的原始数据集如下:import pandas as pdarr = pd.read_excel('C:/Users/cdl/Desktop/空值test_1.xlsx',encoding='gbk')print(arr)print(arr.dtypes)结果:numTest timeTest strTest0 1.0 2017-0...
import
pandas
as pd
data = pd.read_table('breast-cancer-wisconsin.data.txt',header=None,encoding='gb2312',sep=',')
data = data.drop(0, axis=1)
data = data[data[6] != '?']
以上这篇
pandas
实现将dataframe满足某一
条件
的值选
出
就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
如果要自己指定
行
索引
和列
索引
,可以使用 index 和 column 参数:
这个数据是5个车站
10
天内的客流数据:
ridership_df = pd.DataFrame(
data=[[ 0, 0, 2, 5, 0],
可以使用
Python
的 `
pandas
` 库来实现
Excel
中
的 `
VLOOKUP
` 函数的
功能
。
首先,需要使用 `
pandas
.read_
excel
()` 函数读取
Excel
文件,然后使用 `
pandas
.DataFrame.merge()` 函数将两个表格合并。具体来说,可以这样做:
```
python
import
pandas
as pd
# 读取
Excel
文件
df1 = pd.read_
excel
('file1.xlsx')
df2 = pd.read_
excel
('file2.xlsx')
# 将两个表格合并
result = pd.merge(df1, df2, on='ID', how='left')
在上面的代码
中
,`df1` 和 `df2` 分别代表两个表格,`ID` 是这两个表格
中
用于匹配的列名。`how='left'` 表示使用左连接,即保留 `df1`
中
的所有
行
,并在可能的情况下匹配 `df2`
中
的
行
。
合并后的结果保存在 `result`
中
,它是一个新的表格,其
中
包含 `df1` 和 `df2`
中
的所有列,并在可能的情况下包含匹配的
行
。
注意,在使用 `
pandas
.merge()` 函数时,需要指定用于匹配的列名,这在
Excel
中
的 `
VLOOKUP
` 函数
中
也是必需的。
此外,如果要在合并后的表格
中
查找特定的值,可以使用 `
pandas
.DataFrame.loc[]` 函数,例如:
```
python
# 在合并后的表格
中
查找 ID 为 123 的
行
row = result.loc[result['ID'] == 123]
希望这些信息对您
#生成 10^8 的True-False list要 30.23秒. 10^9 做不出來.
def eratosthenes(n): #方法2: 篩出不大於 n 的所有質數
is_prime = [True] * n
for i in range(2, int(n ** 0.5) + 1):
if is_prime[i]:
for j in range(i * i, n, i): is_prime[j] = False
return [x for x in range(2, n) if is_prime[x]]
u1 = 8
t = 10**u1
x1 = eratosthenes(t)
fn1 = f'prime10^{u1}.txt'
xs = sd(x1) #刪除 str(x1) 內的 '[', ']', ',' 檔案大小可減少10%
with open(fn1, 'w') as fn: fn.write(xs) #儲存字串xs'''
[/code]