相关文章推荐
要出家的钥匙扣  ·  2021-07-28_system.runt ...·  3 周前    · 
内向的馒头  ·  POI导出excel执行公式 ...·  5 天前    · 
热心的楼梯  ·  java ...·  5 天前    · 
仗义的人字拖  ·  ajax ...·  4 月前    · 
小眼睛的西装  ·  Matrix.MapPoints ...·  11 月前    · 
活泼的水煮肉  ·  IntPtr 结构 (System) | ...·  1 年前    · 
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的功能,可以考虑把要取的行设为索引,如下:

#将timeTest列设为索引
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]