gpt4 book ai didi

python - 当我将数据添加到数据框列时,为什么我的数据为空?

转载 作者:行者123 更新时间:2023-12-01 08:34:45 25 4
gpt4 key购买 nike

我使用过滤器来检查数据框中的条件,以便我可以标记它们。

filtering = (dfsamen.shift(0).moving=='movingToclose') & (more condtions)
dffilter = pd.Dataframe(data=filtering, columns = ['filter'])
dffilter['DateTime'] = dfsamen['DateTime']

输出:

过滤

4     False
5 False
6 True
7 True

df过滤器

4    False 2018-06-03 06:33:38.593
5 False 2018-06-03 06:33:39.197
6 True 2018-06-03 06:33:40.597
7 True 2018-06-03 06:33:41.800

但后来我在不同的条件下使用相同的代码,但它不起作用

filtering2 = (dfsamen.shift(0).Input5==1) | (more conditions)
dffilter2 = pd.DataFrame(data=filtering2, columns=['filter2'])
dffilter2['DateTime'] = dfsamen['DateTime']

输出:

过滤2

4     False
5 True
6 True
7 True

dffilter2(添加日期时间之前)

Empty DataFrame
Columns: [filter2]
Index: []

dffilter2(带日期时间)

4      NaN 2018-06-03 06:33:38.593
5 NaN 2018-06-03 06:33:39.197
6 NaN 2018-06-03 06:33:40.597
7 NaN 2018-06-03 06:33:41.800

那么,为什么当我将数据添加到列中时,即使数据存在于 filtering2 中,我的数据也会在第二个过滤器中消失?

最佳答案

问题是你的DataFrame构造函数,因为创建了默认的RangeIndex,所以两个DataFrame中可能有不同的索引,数据不对齐,并且你会得到具有不同索引的行的NaNs列值。

解决方案是将值转换为 numpy 数组:

filtering = (dfsamen.shift(0).moving=='movingToclose') & (more condtions)

dffilter = pd.DataFrame(data=filtering.values, columns = ['filter'])
dffilter['DateTime'] = dfsamen['DateTime'].values
print (dffilter)

示例:

dfsamen = pd.DataFrame({
'A':list('abc'),
'DateTime':pd.date_range('2015-01-01', periods=3),
'C':[7,8,9]
}, index=[4,5,6])

print (dfsamen)
A DateTime C
4 a 2015-01-01 7
5 b 2015-01-02 8
6 c 2015-01-03 9

filtering = dfsamen.A == 'a'

dffilter = pd.DataFrame(data=filtering.values, columns = ['filter'])
dffilter['DateTime'] = dfsamen['DateTime'].values
print (dffilter)
filter DateTime
0 True 2015-01-01
1 False 2015-01-02
2 False 2015-01-03

或者使用Series.to_frame用于将 Series 转换为具有一列的 DataFrame:

filtering = dfsamen.A == 'a'

dffilter = filtering.to_frame('filter')
dffilter['DateTime'] = dfsamen['DateTime'].values
print (dffilter)
filter DateTime
4 True 2015-01-01
5 False 2015-01-02
6 False 2015-01-03

关于python - 当我将数据添加到数据框列时,为什么我的数据为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53776119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com