我寫了下面的測驗代碼來檢查它是否正常作業,我在DF中得到了一個 "True "值,但是當我確定對只有一個值進行同樣的計算時,它給了我 "False"。正確的值應該是 "False",因為date_time列不是以紀元/UNIX時間為單位
。import pandas as pd
from datetime import datetime,timedelta
temp_list = []
i =1
while i < 10:
d = {
'ticker': 'TEST',
'date_time': datetime.now() timedelta(day=i),
'price': 100 i,
'volume': i
}
temp_list.append(d)
i = 1 'volume': i
test_df = pd.DataFrame(data=temp_list)
test_df['isepoch'] = pd.notnull(pd.to_numeric(
test_df['date_time'/span>], errors='coerce'/span>)
print(test_df)
print(pd.notnull(pd.to_numeric(test_df['date_time'][0], errors='coerce') ) )
兩條列印陳述句的輸出:
ticker date_time price volume isepoch
0 TEST 2021-09-16 10:33:43. 285935 101 1 True
1 TEST 2021-09-17 10:33:43。 285935 102 2 True
2 TEST 2021-09-18 10:33:43. 285935 103 3 True
3 TEST 2021-09-19 10:33:43。 285935 104 4 True
4 TEST 2021-09-20 10:33:43。 285935 105 5 真
5 TEST 2021-09-21 10:33:43。 285935 106 6 True
6 TEST 2021-09-22 10:33:43. 285935 107 7 True
7 TEST 2021-09-23 10:33:43. 285935 108 8 True
8 TEST 2021-09-24 10:33:43。 285935 109 9 真
False False
我改編了Pandas中的解決方案。使用python檢查值是否為歷時,以在資料框架中創建 "isepoch "列。
uj5u.com熱心網友回復:
如果你吸pandas.to_numeric,scalar、list、tuple、1-d array、或Series可以作為pandas.to_numeric的引數進行轉換。
在你的代碼上面,有以下部分:
test_df['isepoch'] = pd. notnull(pd.to_numeric(test_df['date_time'], errors='coerce')
由于pandas.to_numeric接受了series值,所以回傳true。
然而,test_df['date_time'][0]既不是,scalar,list,tuple,1-d array,或Series,如下所示:
在[1]。print(type(test_df['date_time'][0] ) == list)
...: print(type(test_df['date_time'][0]) == tuple)
...: print(type(test_df['date_time'][0] ) == np.array)
...: print(type(test_df['date_time'][0] ) == pd.Series)
...: print(np.isscalar(test_df['date_time'][0] )
假的。
False False
False False
False False
False False
因此,如果你改變test_df['date_time'][0]作為引數型別,可以在pandas.to_numeric中接受,它將回傳True值。就像下面這樣 :
在 [2]: pd.notnull(pd.to_numeric(np. array(test_df['date_time'][0]), errors='coerce')
Out[2]。True。
如果你想了解更多關于pandas.to_numeric的源代碼,你可以訪問這里。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/307678.html
標籤:
上一篇:<p>我有一個資料框架,比如:</p> <preclass="lang-pys-code-block"><codeclass="
