在尝试调试groupby函数应用程序时,我使用一个虚拟函数来为每个组“查看传递给函数的内容”的。当然,我在玩游戏:
import numpy as np
import pandas as pd
np.random.seed(0) # so we can all play along at home
categories = list('abc')
categories = categories * 4
data_1 = np.random.randn(len(categories))
data_2 = np.random.randn(len(categories))
df
我有一个事务表,其中包含:
timestamp, user_id, val
我需要按user_id分组,并在val上应用复杂的操作,比如
len(val[by_user_id].unique())
但是,每一列都是不同的...
哪种方法是最有效的?
1)使用循环进行拆分
for x in user_id_list :
或者2)使用Pandas groupby,但这并不清楚如何对每个列应用不同的函数...
谢谢
我有一个数据文件df
import pandas
df = pandas.DataFrame(data=[[1,True],[2,False]],columns=['A','decide'])
根据“决定”列的值,我要对哪些行应用函数fun
def fun(case,var):
case = case + var
return case
df=df.apply(lambda x: fun(x,1) if x['decide'] else fun(x,2))
当然不起作用了:)知道为什么和如何让它起作用吗?
我可以使用以下代码按列对Pandas数据进行离散化:
import numpy as np
import pandas as pd
def discretize(X, n_scale=1):
for c in X.columns:
loc = X[c].median()
# median absolute deviation of the column
scale = mad(X[c])
bins = [-np.inf, loc - (scale * n_scale),
loc +
我希望使用apply在基于其他列值的pandas数据框中创建新列。我收到这个错误,但我不明白原因:
File "C:\dev\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2448, in _setitem_array
raise ValueError('Columns must be same length as key')
ValueError: Columns must be same length as key
我是不是误解了应用函数?是否可以使用单个apply调用来更新/创建多个
我正在研究如何将函数应用于熊猫数据栏中的一个列。但是我只想在满足条件的情况下应用这个函数。
import pandas as pd
def example_function(a, b):
return a + b
data = dict(
A = [1, 2],
B = [4, 5],
C = ["A", "B"],
)
example_df = pd.DataFrame(data=data)
因此,我想使用来自A和B的值应用example_function,只有在C列中有"B"的情况下。
有什么想法吗?
我刚接触pandas,对此感到相当困惑,特别是与列表和使用列表理解相比。
我有一个有4列的数据帧。我想在第四列"m“的基础上创建第五列"c”。我可以通过对"m“列中的每一行应用我的函数来获得"c”的值。
如果"m“是一个列表,并且使用列表理解,那么它将是
c = [myfunction(x) for x in m]
如何将此“逻辑”应用于数据帧?
我知道如何将函数应用于Pandas-DataFrame.中的所有列然而,我还没有弄清楚如何在使用Polars-DataFrame.时实现这一点。
我查看了专门讨论这个主题的,但是我没有找到答案。在这里,我附上了一个代码片段与我的失败尝试。
import numpy as np
import polars as pl
import seaborn as sns
# Loading toy dataset as Pandas DataFrame using Seaborn
df_pd = sns.load_dataset('iris')
# Converting Pandas
我想做的是在一个包含70+列的非常大的CSV文件的1列中搜索一个字符串。
一旦找到该字符串出现的行,我希望只显示特定列集中的数据。
这是我一直给我的错误
import pandas as pd
df = pd.read_csv('output.csv')
#columns I would like to display data from
df[df.iloc[0,1,2,11,12,14]]
#search for specific term in specific column
df.loc[df['COLUMN NAME'].str.contains(&
我有如下数据,
import pandas as pd
df = pd.DataFrame({'label':['first','second','first','first','second','second'],
'first_text':['how is your day','the weather is nice','i am feeling well','i go to s
我尝试使用columns.fillna(column.mean)从两列中删除空格和空格,并将它们替换为各自列中的平均值,但在实现以下代码时,它告诉我“列未定义”。 如何定义在数据框中定义为参数的列,以便应用columns.fillna(column.mean)方法? import pandas as pd
from pandas import DataFrame
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
points = data = pd.read_csv (r'brain_disease