熊猫添加栏比较结果 - python

如何为数据框中的每一行添加一个比较列(即lead)到我的数据框中。它应采用列均值(总的前导均值)并减去其月均值。可以使用apply和使用groupby的lambda吗?

即如何创建其他比较列Lead_Diff,这是行项目“每月平均读数”与其总/列平均值的差。下面是我的数据的模型,谢谢。

info = {'date': ['01-18', '02-18', '03-18', '01-18','02-18','01-18','03-18'], 
        'lead': [0.1, 0.2, 0.3, 0.4, 0.5, 0.6,0.7],
        'copper': [0.7, 0.6, 0.5, 0.4, 0.3, .2, 0.1]}

df = pd.DataFrame.from_dict(info)

python大神给出的解决方案

我相信您需要在新transform中为mean提供Series,且其大小与原始DataFrame相同,并减去列的mean

df['mean'] = df.groupby('date')['lead'].transform('mean') - df['lead'].mean()
print (df)
    date  lead  copper      mean
0  01-18   0.1     0.7 -0.033333
1  02-18   0.2     0.6 -0.050000
2  03-18   0.3     0.5  0.100000
3  01-18   0.4     0.4 -0.033333
4  02-18   0.5     0.3 -0.050000
5  01-18   0.6     0.2 -0.033333
6  03-18   0.7     0.1  0.100000

如果年份不重要,仅需几个月就可以了解:

#changed data
info = {'date': ['01-18', '03-17', '03-18', '01-18','03-17','01-17','03-17'], 
    'lead': [0.1, 0.2, 0.3, 0.4, 0.5, 0.6,0.7],
    'copper': [0.7, 0.6, 0.5, 0.4, 0.3, .2, 0.1]}
df = pd.DataFrame.from_dict(info)

df['date'] = pd.to_datetime(df['date'], format='%m-%y')
df['mean'] = df.groupby(df['date'].dt.month)['lead'].transform('mean') - df['lead'].mean()
print (df)
        date  lead  copper      mean
0 2018-01-01   0.1     0.7 -0.033333
1 2017-03-01   0.2     0.6  0.025000
2 2018-03-01   0.3     0.5  0.025000
3 2018-01-01   0.4     0.4 -0.033333
4 2017-03-01   0.5     0.3  0.025000
5 2017-01-01   0.6     0.2 -0.033333
6 2017-03-01   0.7     0.1  0.025000

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

Python:同时在for循环中添加到列表列表 - python

我想用for循环外的0索引值创建一个新列表,然后使用for循环添加到相同的列表。我的玩具示例是:import random data = ['t1', 't2', 't3'] masterlist = [['col1', 'animal1', 'an…

查找字符串中的行数 - python

我正在创建一个python电影播放器​​/制作器,我想在多行字符串中找到行数。我想知道是否有任何内置函数或可以编写代码的函数来做到这一点:x = """ line1 line2 """ getLines(x) python大神给出的解决方案 如果换行符是'\n',则nlines …

Python:来自dict系列的Pandas数据框 - python

我有一个熊猫数据框:type(original) pandas.core.frame.DataFrame 其中包括系列对象original['user']:type(original['user']) pandas.core.series.Series original['user']指向许多命令:…