我有一个从-1到+1的Pandas系列随机数:
from pandas import Series
from random import random
x = Series([random() * 2 - 1. for i in range(1000)])
x
Output:
0 -0.499376
1 -0.386884
2 0.180656
3 0.014022
4 0.409052
...
995 -0.395711
996 -0.844389
997 -0.508483
998 -0.156028
我有一些困难,在熊猫使用.apply或.aggregate滚动(当然,这是正确的方式解决我的问题)。假设我有一个有A和B列的数据,如果A的值为1,我想要创建一个列C,其中包含B的滚动平均值。更广泛地说,我希望能够在滚动的基础上应用一个自定义函数,其中涉及数据数据的几列(例如,当B>x和/或C=y时,A列的滚动和)。
import pandas as pd
import numpy as np
df2 = pd.DataFrame({'A':[1,1,1,0,0,0,1,1,1],'B': [50,40,50,-20,20,10,10,-5,-2]}, in
我正在试着理解它是如何工作的.. 我有这个df。 ticket_id address grafitti_status
0 284932 10041 roseberry, Detroit MI NaN
1 285362 18520 evergreen, Detroit MI NaN
2 285361 18520 evergreen, Detroit MI NaN
3 285338 1835 central, Detroit MI
我不明白为什么使用dtype=str创建的系列结果如下:
In [2]: pandas.Series(index=range(2), dtype=str)
Out[2]:
0 NaN
1 NaN
dtype: object
但是使用DataFrame创建的dtype=str结果如下:
In [3]: pandas.DataFrame(index=range(2), columns=[0], dtype=str)
Out[3]:
0
0 n
1 n
为什么只有字母"n“的字符串?
为什么系列赛和DataFrame有这样的区别?
这些文件在哪里?!
np.nan和np.Nan有什么区别吗?根据我的理解,两者都用于空值,但如果您在这里查看
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame([[np.nan,2,np.nan,0],[3,4,np.nan,1],[np.nan,np.nan,np.nan,5]],columns=list('ABCD'))
print(df)
print(np.nan == np.NaN)
我得到以下输出:
A B C D
0 NaN 2.
我正在尝试将Pandas数据帧序列转换为float。我先执行locale.setlocale(locale.LC_NUMERIC, ''),然后执行df.idh.apply(locale.atof),但它给出了上面提到的错误:AttributeError: 'float' object has no attribute 'replace'。我假设在某个时刻,它会得到类似NaN的东西,可能是其他字符串,但它不能识别它。我如何告诉apply跳过这些?
我有一个pandas数据框,sample,其中一个列叫做PR,我对它应用了一个lambda函数,如下所示:
sample['PR'] = sample['PR'].apply(lambda x: NaN if x < 90)
然后,我得到以下语法错误消息:
sample['PR'] = sample['PR'].apply(lambda x: NaN if x < 90)
^
SyntaxError: in
当在python中对我的excel数据执行很少的分析时。运行代码以根据参数获取少数数据时,遇到一个错误。
我有一个excel文件,作为Python熊猫的源代码。在excel中,我们有一个名为“汇总”的列,在该列中,我需要获取那些开始/包含"FW:“的汇总的记录。
代码看起来非常适合我,我确实运行了代码,并得到了布尔值的输出。将布尔值转换为完整记录时。我遇到了一个错误。
import pandas as pd
import numpy as np
data = pd.read_excel('Desktop/VGCS06.xlsx)
data['Summary'].
我有一个带有两个系列的DataFrame,我知道如何使用所有数据点来实现它们的协整.
import pandas as pd
import numpy as np
import statsmodels.tsa.stattools as ts
A = pd.Series(np.cumsum(np.random.normal(size=100)) + 50)
B = pd.Series(A + 5 + np.random.normal(size=100))
ts.coint(A, B)
但是,我想通过使用滚动窗口(假设是60天)来探索这种协整是如何随着时间的推移发生变化的。我如何使用状态模型和
也许看看这个快速的例子可以帮助你理解我想做的事情:
import pandas as pd
df = pd.DataFrame({"A": [10,20,30,50,70,40], "B": [20,30,10,15,20,30]})
def _custom_function(X):
# whatever... just for the purpose of the example
# but I need X to be the actual df and not a series
Y = sum((X['A
我正在尝试使用pandas和numpy填充数组以满足条件我使用了import numpy as np和import pandas as pd X=['e','a','b','c'] #The list of elements to multiply and fill
df=pd.DataFrame([['*','e','a','b','c'],['e','e','a','b','
我有一只熊猫数据,它的累积值如下:
import pandas as pd
import numpy as np
data = {'Date':['2017-01-27','2017-01-28','2017-01-29','2017-01-30','2017-01-31','2017-02-01','2017-02-02','2017-02-03','2017-02-04','2017-02-05'],
'K
我有一个熊猫系列,大部分元素都是字典。我想扩充字典,使它们成为专栏。当不缺少值时,这很简单:
import numpy as np
import pandas as pd
data = pd.Series([{'Class': 'A'},
{'Class': 'B'}])
data.apply(pd.Series)
输出:
Class
0 A
1 B
但是,在我的例子中,存在缺失的值。当我在缺少值时尝试.apply(pd.Series)方法时,会得到一个错误:
RuntimeW
我按照指定的指令执行以下操作:
df.loc[:,('ratio')][np.isinf(df.loc[:,('ratio')])] =np.nan
但我收到了SettingWithCopyWarning警告。本质上,我希望在除以零的情况下将任何inf值设置为np.nan。
<string>:265: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentatio
编辑:这个问题不是的克隆,因为我想用列的平均值而不是数据值的平均值替换每个列的值。
问题
我有一个熊猫数据收集(train),有100栏,我必须应用机器学习技术。
通常,我手工制作了特性工程,但在这种情况下,我有很多专栏要处理。
我想构建一个Python函数,该函数:
1)在每一列中找到NaN值(我想过df.isnull().any() )
2)对于每个NaN值,将其替换为已找到NaN值的列的平均值。
我的想法是这样的:
def replace(value):
for value in train:
if train['value'].isnull():