我有一个数据框,我想在其中存储'raw' numpy.array:
df['COL_ARRAY'] = df.apply(lambda r: np.array(do_something_with_r), axis=1)
Run Code Online (Sandbox Code Playgroud)
但似乎pandas试图'解包'numpy.array.
有解决方法吗?除了使用包装器(参见下面的编辑)?
我试过reduce=False没有成功.
编辑
这是有效的,但是我必须使用'dummy' Data类来包围数组,这是不令人满意的并且不是很优雅.
class Data:
def __init__(self, v):
self.v = v
meas = pd.read_excel(DATA_FILE)
meas['DATA'] = meas.apply(
lambda r: Data(np.array(pd.read_csv(r['filename'])))),
axis=1
)
Run Code Online (Sandbox Code Playgroud) 我有一个227x4 DataFrame,国家名称和数值要清理(争吵?).
这是DataFrame的抽象:
import pandas as pd
import random
import string
import numpy as np
pdn = pd.DataFrame(["".join([random.choice(string.ascii_letters) for i in range(3)]) for j in range (6)], columns =['Country Name'])
measures = pd.DataFrame(np.random.random_integers(10,size=(6,2)), columns=['Measure1','Measure2'])
df = pdn.merge(measures, how= 'inner', left_index=True, right_index =True)
df.iloc[4,1] = 'str'
df.iloc[1,2] = 'stuff'
print(df)
Country Name Measure1 Measure2
0 tua 6 3
1 MDK 3 stuff
2 RJU 7 2
3 WyB 7 8
4 Nnr str 3
5 rVN 7 4
Run Code Online (Sandbox Code Playgroud)
如何np.nan在不触及国家/地区名称的情况下在所有列中替换字符串值? …
当我使用变量而不是值时,我在熊猫中查询数据框时遇到问题.
df2 = pd.read_csv('my.csv')
query=df2.query('cc_vehicle_line==7')
Run Code Online (Sandbox Code Playgroud)
工作正常但是
df2 = pd.read_csv('my.csv')
query=df2.query('cc_vehicle_line==variable_name')
Run Code Online (Sandbox Code Playgroud)
它抛出了variable_name未定义的消息.但它已定义.我不能使用硬编码值,因为我需要自动化,并根据variable_name的值,选择相关的行.
我错过了什么吗?
谢谢
考虑我有这些列表:
l = [5,6,7,8,9,10,5,15,20]
m = [10,5]
Run Code Online (Sandbox Code Playgroud)
我想要得到的指数m在l.我使用list comprehension来做到这一点:
[(i,i+1) for i,j in enumerate(l) if m[0] == l[i] and m[1] == l[i+1]]
Run Code Online (Sandbox Code Playgroud)
输出: [(5,6)]
但如果我有更多的数字m,我觉得它不是正确的方法.那么Python或NumPy有什么简单的方法吗?
另一个例子:
l = [5,6,7,8,9,10,5,15,20,50,16,18]
m = [10,5,15,20]
Run Code Online (Sandbox Code Playgroud)
输出应该是:
[(5,6,7,8)]
Run Code Online (Sandbox Code Playgroud) 假设我创建了一个带有列和查询的数据框,即
pd.DataFrame([[1,2],[3,4],[5,6]],columns=['a','b']).query('a>1')
Run Code Online (Sandbox Code Playgroud)
这会给我
a b
1 3 4
2 5 6
Run Code Online (Sandbox Code Playgroud)
但是当数据框值太大而我没有列名时,如何通过索引查询列?
我尝试通过传递一个数字来查询,但这不是这样做的方式。
pd.DataFrame([[1,2],[3,4],[5,6]]).query('0>1') # This is what I tried.
Run Code Online (Sandbox Code Playgroud)
如何表示0查询中的列名?
预期输出:
0 1
1 3 4
2 5 6
Run Code Online (Sandbox Code Playgroud) 你好,我正在做一个GridSearchCV,我打印与结果.cv_results_的功能scikit learn。
我的问题是,当我手动评估所有测试分数分割的平均值时,我得到的数字与'mean_test_score'. 与标准有np.mean()什么不同?
我在此附上带有结果的代码:
n_estimators = [100]
max_depth = [3]
learning_rate = [0.1]
param_grid = dict(max_depth=max_depth, n_estimators=n_estimators, learning_rate=learning_rate)
gkf = GroupKFold(n_splits=7)
grid_search = GridSearchCV(model, param_grid, scoring=score_auc, cv=gkf)
grid_result = grid_search.fit(X, Y, groups=patients)
grid_result.cv_results_
Run Code Online (Sandbox Code Playgroud)
这个操作的结果是:
{'mean_fit_time': array([ 8.92773601]),
'mean_score_time': array([ 0.04288721]),
'mean_test_score': array([ 0.83490629]),
'mean_train_score': array([ 0.95167036]),
'param_learning_rate': masked_array(data = [0.1],
mask = [False],
fill_value = ?),
'param_max_depth': masked_array(data = [3],
mask = [False],
fill_value = ?),
'param_n_estimators': masked_array(data = [100],
mask …Run Code Online (Sandbox Code Playgroud) 我有一个pandas数据帧,我从csv文件读入的值.我有一个标有'SleepQuality'的列,值从0.0到100.0浮动.我想创建一个标记为'SleepQualityGroup'的新列,其中原始列btw 0 - 49中的值在新列中的值为0,50 - 59 = 1,60 - 69 = 2,70 - 79 = 3,80 - 89 = 4,而90 - 100 = 5
为了做到这一点,最好的配方是什么?我坚持识别每个范围中所有值并分配给新值所需的逻辑.
下面在新的"SleepQualityGroup"列中输出结果的示例.
SleepQuality SleepQualityGroup
80.4 4
90.1 5
66.4 2
50.3 1
86.2 4
75.4 3
45.7 0
91.5 5
61.3 2
54 1
58.2 1
Run Code Online (Sandbox Code Playgroud) 我有这个简短版本的ADSB json数据,想将其转换为datacab列,例如Icao,Alt,Lat,Long,Sdd,Cou .....
在Alperen告诉我这样做之后
df = pd.read_json('2016-06-20-2359Z.json', lines=True),
Run Code Online (Sandbox Code Playgroud)
我可以将其加载到DataFrame中。但是,df.acList是
[{'Id':10537990,'Rcvr':1,'HasSig':False,...
名称:acList,dtype:对象
如何获取Icao,Alt,Lat,Long,Sdd,Cou数据?
“ src”:1,
“提要”:[
{
“ id”:1,
“名称”:“ ADSBexchange.com”,
“ polarPlot”:false
}
],
“ srcFeed”:1,
“ showSil”:是的,
“ showFlg”:是的,
“ showPic”:是的,
“ flgH”:20,
“ flgW”:85,
“ acList”:[
{
“ Id”:11281748,
“ Rcvr”:1,
“ HasSig”:否,
“ Icao”:“ AC2554”,
“错误”:false,
“ Reg”:“ N882AS”,
“ FSeen”:“ \ /日期(1466467166951)\ /”,
“ TSecs”:3,
“ CMsgs”:1,
“ AltT”:0,
“ Tisb”:否,
“ TrkH”:否,
“类型”:“ CRJ2”,
“ Mdl”:“ 2001
炸弹公司
CL-600-2B19“,
“ Man”:“ Bombardier”,
“ … 如果标题有点令人困惑,请原谅我.
假设我有test.h5.以下是使用读取此文件的结果df.read_hdf('test.h5', 'testdata')
0 1 2 3 4 5 6
0 123 444 111 321 NaN NaN NaN
1 12 234 113 67 21 32 900
3 212 112 543 321 45 NaN NaN
Run Code Online (Sandbox Code Playgroud)
我想选择最后一个非Nan列.我的预期结果是这样的
0 321
1 900
2 45
Run Code Online (Sandbox Code Playgroud)
另外,我想选择除最后一个非NaN列之外的所有列.我的预期结果可能是这样的.它可能是numpy数组但我还没有任何解决方案.
0 1 2 3 4 5 6
0 123 444 111
1 12 234 113 67 21 32
3 212 112 543 321
Run Code Online (Sandbox Code Playgroud)
我在网上搜索,发现df.iloc[:, :-1]阅读所有专栏,但最后一篇,并df.iloc[:, -1]阅读最后一栏.
我使用这两个命令的当前结果如下:1.用于读取除最后一列之外的所有列
0 1 2 3 …Run Code Online (Sandbox Code Playgroud) 我喜欢使用 background_gradient,因为它可以帮助我以 excel 的方式查看我的数据框。
但我想知道是否有办法将颜色映射到另一个数据框中的数字。
例如,我热衷于使用 zscores 的数据框为数据框着色,以便我可以快速查看异常值的值。
A = pd.DataFrame(np.random.randn(6, 3), columns=['a', 'b', 'c'])
B = pd.DataFrame(np.random.randn(6, 3), columns=['a', 'b', 'c'])
A.style.background_gradient(???)
Run Code Online (Sandbox Code Playgroud)
我想知道如何使用background_gradient以便它使用数据帧 B 中的值来设置样式 A。
python ×10
pandas ×8
numpy ×5
dataframe ×4
grid-search ×1
indexing ×1
json ×1
list ×1
matplotlib ×1
python-3.x ×1
scikit-learn ×1
variables ×1