小编Dan*_*y W的帖子

在 train_test_split 返回的数据上,熊猫“不再支持将类似列表的内容传递给 .loc 或 [] 并带有任何缺失的标签”

由于某种原因,train_test_split 尽管长度相同且索引看起来相同,但仍会触发此错误。

from sklearn.model_selection import KFold

data = {'col1':[30.5,45,1,99,6,5,4,2,5,7,7,3], 'col2':[99.5, 98, 95, 90,1,5,6,7,4,4,3,3],'col3':[23, 23.6, 3, 90,1,9,60,9,7,2,2,1]} 
df = pd.DataFrame(data)

train, test = train_test_split(df, test_size=0.10)
X = train[['col1', 'col2']]
y2 = train['col3']

X = np.array(X)

kf = KFold(n_splits=3, shuffle=True)
for train_index, test_index in kf.split(X):
    X_train, y_train = X[train_index], y[train_index]
Run Code Online (Sandbox Code Playgroud)

y 是熊猫系列(与 x 长度相同)。x 是一个数据框,大约有 20 个数字列被转换为 numpy 数组。

出于某种原因,尽管长度相同,但 train_test_split 仍会触发错误。

如果我不调用 train_test_split 它工作正常。

由于尝试以这种方式索引 numpy 数组而触发错误的最后一行:y[train_ind]

python numpy pandas scikit-learn

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

MYSQL 中当前行上日期之前(并包括该日期)的所有行的总和

重要的是要知道在查询期间日期是未知的,因此我不能只硬编码“WHERE”子句。

这是我的桌子:

+-----------+----------+-------------+
| Date_ID   | Customer | Order_Count |
+-----------+----------+-------------+
| 20150101  | Jones    | 6           |
| 20150102  | Jones    | 4           |
| 20150103  | Jones    | 3           |
+-----------+----------+-------------+
Run Code Online (Sandbox Code Playgroud)

这是所需的输出:

+-----------+----------+------------------+
| Date_ID   | Customer | SUM(Order_Count) |
+-----------+----------+------------------+
| 20150101  | Jones    | 6                |
| 20150102  | Jones    | 10               |
| 20150103  | Jones    | 13               |
+-----------+----------+------------------+
Run Code Online (Sandbox Code Playgroud)

我的猜测是我需要使用变量或者连接。

编辑:仍然无法足够快地获得它。非常慢。

mysql sql cumulative-sum

6
推荐指数
1
解决办法
5841
查看次数

标签不在List和KeyError中

我试图获得特定细胞的价值.

  main_id   name  code
  0    1345  Jones    32
  1    1543   Jack    62
  2    9874   Buck    86
  3    2456   Slim    94
Run Code Online (Sandbox Code Playgroud)

我想要代码= 94的单元格,因为我已经知道main_id但没有别的.

raw_data = {'main_id': ['1345', '1543', '9874', '2456'],
        'name': ['Jones', 'Jack', 'Buck', 'Slim'],
        'code': [32, 62, 86, 94]}

    df=pd.DataFrame(raw_data, columns = ['main_id', 'name', 'code'])


    v=df.loc[str(df['main_id']) == str(2456)]['code'].values
    print(df.loc['name'])
Run Code Online (Sandbox Code Playgroud)

print(df.loc['name'])索赔标签不在索引中

v=df.loc[str(df['main_id']) == str(2456)]['code'].values说'KeyError False'

python dataframe pandas

6
推荐指数
1
解决办法
1万
查看次数

Python/Pandas语法,用于通过比较两列来创建新数据帧

我正在df中的两列上进行一些字符串比较,但是当我将结果分配给新的数据帧时,我只得到1列,其中包含比较的布尔结果:

N=df['pair2'].str.split('_').str[1]!=df['pair1'].str.split('_').str[1]
Run Code Online (Sandbox Code Playgroud)

N包含:

 True
 False
 ....
Run Code Online (Sandbox Code Playgroud)

我只希望整个原始df减去字符串比较为TRUE的行.

python dataframe pandas

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

标签 统计

pandas ×3

python ×3

dataframe ×2

cumulative-sum ×1

mysql ×1

numpy ×1

scikit-learn ×1

sql ×1