小编May*_*wal的帖子

计算 Pandas DataFrame 中父级总数的份额

我想知道与下面的方法相比是否有更好的方法来计算 Pandas 中父级总数的份额:非常感谢您的帮助!

raw_data = {'product': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
        'revenue': [10,20,20,0,50,50,0,0,30]}
df = pd.DataFrame(raw_data, columns = ['product', 'revenue'])

unique_values = df['product'].unique()
L = pd.DataFrame ()

for value in unique_values:
    small_df = df[df['product']==value]
    small_df['shares'] = small_df['revenue']/small_df['revenue'].sum()
    L = L.append(small_df, ignore_index=True)

print(L)
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas pandas-groupby

3
推荐指数
1
解决办法
1556
查看次数

如何遍历 Pandas DataFrame 并将字符串拆分为多行

循环遍历带有字符串的数据帧的最佳方法是什么,我想将其拆分为多行同时保留另一个值?

输入:

genres                   revenue
action|comedy|drama       5000
action|romance            10000
Run Code Online (Sandbox Code Playgroud)

输出:

genres      revenue
action      5000
comedy      5000
drama       5000
action      10000
romance     10000
Run Code Online (Sandbox Code Playgroud)

python dataframe python-3.x pandas

3
推荐指数
1
解决办法
106
查看次数

在黑斑羚上修剪前导零

我有两种帐号,所有帐号都是字符串:其中一些有leading zeros,其他帐号已正确导入,没有前导零;

如何在不修剪正常帐号的情况下摆脱前导零?

带有前导零的那些有点: 0000012345678

没有前导零的那些是: 1345678

如何在不修剪所有帐号的情况下在Impala中执行此操作?从我所看到的情况下,这些记录中始终有5个前导零,其中前导零.

sql cloudera impala

2
推荐指数
1
解决办法
732
查看次数

如何在python中添加列表的总和

num_list_1 = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

num_list_1 = 10的总和

num_list_2 = [5,6,7,8]
Run Code Online (Sandbox Code Playgroud)

num_list_2 = 26的总和

我将如何能够总结一起num_list_1num_list_2.

我自己尝试过这样做,因为它是一个列表,它不会让我连接它们.

python python-3.x

2
推荐指数
1
解决办法
128
查看次数

如何从pandas中的两个数据帧执行条件映射

我在熊猫中有2个数据帧

df1

date         tank        quantity
2018-04-01   1           234
2018-04-02   1           343
2018-04-03   1           334
2018-04-04   1           143
2018-04-05   1           237
2018-04-06   1           234
2018-04-07   1           last observation
2018-04-01   2           234
2018-04-02   2           343
2018-04-03   2           334
2018-04-04   2           143
2018-04-05   2           237
2018-04-06   2           234
2018-04-07   2           last observation

df2
date         tank        quantity
2018-04-01   1           221
2018-04-02   1           200
2018-04-03   1           100
2018-04-04   1           123
2018-04-05   1           234.56
2018-04-06   1           324.67
2018-04-07   1           324.67
2018-04-01   2           221
2018-04-02   2           221.23 …
Run Code Online (Sandbox Code Playgroud)

pandas

2
推荐指数
1
解决办法
42
查看次数

Python 日志记录不写入文件

我正在尝试将一些数据记录到本地文件中,如下所示:

import logging

# dont know if format parameter is really necessary here
logging.basicConfig(filename='logs/server_logs.log', filemode='a', format='%(message)s') 

logging.info("some data")
Run Code Online (Sandbox Code Playgroud)

此代码确实生成了 0 kb 的“server_logs.log”文件,但它保持为空,没有附加任何文本。难道我做错了什么?

python logging python-3.x

2
推荐指数
1
解决办法
70
查看次数

创建函数以重命名熊猫数据框中的列

我有如下数据框:

df = pd.DataFrame({'$a':[1,2], '$b': [10,20]})
Run Code Online (Sandbox Code Playgroud)

我尝试创建一个允许动态更改列名的函数,我可以在函数中输入旧列名和新列名,如下所示:

def rename_column_name(df, old_column, new_column):
    df = df.rename({'{}'.format(old_column) : '{}'.format(new_column)}, axis=1)
    return df
Run Code Online (Sandbox Code Playgroud)

此功能仅适用于我只有一个输入的情况,如下所示:

new_df = rename_column_name(df, '$a' , 'a')
Run Code Online (Sandbox Code Playgroud)

这给了我这个 new_df 如下:

new_df = pd.DataFrame({'a':[1,2], '$b': [10,20]})
Run Code Online (Sandbox Code Playgroud)

但是,我想创建一个函数,允许我根据自己的喜好对多列/一列进行更改:

new_df = rename_column_name(df, ['$a','$b'] , ['a','b'])
Run Code Online (Sandbox Code Playgroud)

并获得如下所示的 new_df

new_df = pd.DataFrame({'a':[1,2], 'b': [10,20]})
Run Code Online (Sandbox Code Playgroud)

那么,如何使我的函数更加动态,以允许我自由输入多个/一个列名称并重命名它们?

python rename function dataframe pandas

2
推荐指数
1
解决办法
1902
查看次数

计算列表字典中的值,并使用 Pandas 连接输出的键和值名称

我需要帮助从字典(python3)中获取一些输出:

{'horse': ['brown', 'black'], 'duck': ['brown', 'black', 'brown', 'grey', 'brown']}
Run Code Online (Sandbox Code Playgroud)

需要的输出:

black horse: 1
brown horse: 1
grey horse: 0
black duck: 1
brown duck: 3
grey duck: 1
Run Code Online (Sandbox Code Playgroud)

有人可以提供解决方案吗?

python dictionary python-3.x pandas

2
推荐指数
1
解决办法
102
查看次数

Pandas 中的`Series.replace()` 和`Series.map()` 之间有区别吗?

双方pandas.Series.mappandas.Series.replace似乎给了相同的结果。是否有理由使用一个而不是另一个?例如:

import pandas as pd
df = pd.Series(['Yes', 'No'])
df

0    Yes
1     No
dtype: object
Run Code Online (Sandbox Code Playgroud)
df.replace(to_replace=['Yes', 'No'], value=[True, False])

0     True
1    False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
df.map({'Yes':True, 'No':False})

0     True
1    False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
df.replace(to_replace=['Yes', 'No'], value=[True, False]).equals(df.map({'Yes':True, 'No':False}))

True
Run Code Online (Sandbox Code Playgroud)

python series python-3.x pandas

2
推荐指数
1
解决办法
876
查看次数

2
推荐指数
1
解决办法
69
查看次数