小编Jef*_*ist的帖子

Pandas - 将派生日期时间转换为整数

我有一个pandas数据框'df',其中有一个原始列,日期时间格式为日期.我将硬日期设为变量:

 hard_date = datetime.date(2013, 5, 2)
Run Code Online (Sandbox Code Playgroud)

然后我在我的df中创建了一个新列,其中包含date列和hard_date中的值之间的差异...

df['days_from'] = df['date'] - hard_date
Run Code Online (Sandbox Code Playgroud)

这产生了良好的输出.例如,当我在新列中打印第一个单元格时,它显示:

print (df['days_from'].iloc[0])

28 days 00:00:00
Run Code Online (Sandbox Code Playgroud)

但现在我想将新列转换为整数天数.我想过只拿前2个字符,但很多值都是负数,所以我正在寻找更好的路线.

有关将列转换为日期整数的有效方法的任何想法?

谢谢

python pandas

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

熊猫 - 创建一个新专栏

我一直在使用以下内容在pandas中创建新列:

df['new_column'] = value
Run Code Online (Sandbox Code Playgroud)

我正在使用此方法,但是,我收到了设置副本的警告.

在不创建副本的情况下创建新列的方法是什么?

python pandas

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

熊猫 - 找到没有Nan值的最长伸展

我有一个pandas数据帧"df",其示例如下:

   time  x
0  1     1
1  2     Nan 
2  3     3
3  4     Nan
4  5     8
5  6     7
6  7     5
7  8     Nan
Run Code Online (Sandbox Code Playgroud)

真实的框架要大得多.我试图在"x"系列中找到最长的非NaN值,并打印出该帧的起始和结束索引.这可能吗?

谢谢

python numpy pandas

7
推荐指数
2
解决办法
1587
查看次数

模块“xgboost”没有属性“DMatrix”

我提取了一些在 kaggle (linux) 上运行的 ML 代码,并尝试在 Windows 机器上的 jupyter notebook 中运行它。这是代码(其中一些):

##### RUN XGBOOST
import xgboost as xgb

print("\nSetting up data for XGBoost ...")
# xgboost params
xgb_params = {
    'eta': 0.037,
    'max_depth': 5,
    'subsample': 0.80,
    'objective': 'reg:linear',
    'eval_metric': 'mae',
    'lambda': 0.8,   
    'alpha': 0.4, 
    'base_score': y_mean,
    'silent': 1
}

#### These lines were causing the folloing error on 9/1/2017:
# AttributeError: module 'xgboost' has no attribute 'DMatrix'
dtrain = xgb.DMatrix(x_train.values, y_train.values)
dtest = xgb.DMatrix(x_test)

num_boost_rounds = 250
print("num_boost_rounds="+str(num_boost_rounds))

# train …
Run Code Online (Sandbox Code Playgroud)

python machine-learning xgboost

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

熊猫 - 计算字符字段中的逗号数量

我有一个pandas数据框,其中一列填充了字符串,如下所示:

   string_column
0  t,d,t,d,v,d
1  s,v,y,d
2  d,u,f
Run Code Online (Sandbox Code Playgroud)

我想在字符串列中创建一个包含逗号计数的新列.我的预期结果如下:

   string_column  comma_count
0  t,d,t,d,v,d    5
1  s,v,y,d        3
2  d,u,f          2
Run Code Online (Sandbox Code Playgroud)

pandas是否有字符串读取方法可以完成此任务?

谢谢

python pandas

3
推荐指数
2
解决办法
1938
查看次数

Python - 使用双 x 轴增加 matplotlib 图形大小

我有一个使用 matplotlib 的图表,它使用 twinx() 函数来显示具有不同 y 值的两个不同图:

plt.plot(Current_Time[1000:66000],Avg_Duration[1000:66000],color='blue',label="Average Duration of All Parked Cars")
#plt.figure(figsize=(10,10))
plt.legend(loc='upper left')
plt.ylim(0,50000)
plt.ylabel('Duration in Seconds')
plt.xticks(rotation=90)
plt2=plt.twinx()
#plt2.figure(figsize=(10,10))
plt2.plot(Current_Time[1000:66000],Quantity[1000:66000],color='purple',label='Quantity of Cars Parked')
plt2.set_ylabel('Cars Parked')
plt2.legend(loc='upper right')
plt.show()
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是当我尝试增加绘图大小时,它将图表分开。有没有办法增加绘图大小而不分成两个图表?

python matplotlib

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

遍历一列熊猫时获取索引

我有一个简单的数据框:

索引,a,y 0,1,2 1,4,6 2,5,8

我想遍历“ a”列,并打印出其索引以获取特定值。

for x in df.a:
    if x == 4:
        print ("Index of that row")
Run Code Online (Sandbox Code Playgroud)

当for循环达到我要查找的“ a”列中的特定值时,应该使用哪种语法来获取索引值?

谢谢

python pandas

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

Pandas - 将列值与字典中的值进行比较

我有字典

d = {1:a,2:a}
Run Code Online (Sandbox Code Playgroud)

我也有一个熊猫框架“df”

0 x y
1 1 10
2 2 56
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我无法将 x 值与字典键匹配:

for index, row in df.iterrows():
    for x,y in d.items():
        if row['x'] == x:
            print "Got a Match"
        else:
            print "No Match Found"
Run Code Online (Sandbox Code Playgroud)

我得到的只是“找不到匹配项”。有什么我做错了吗?pandas系列中的数据是“float64”,字典中的key是“int”,但是我把pandas系列转为int,还是无法匹配到这些项。任何帮助表示赞赏。

谢谢

python dictionary pandas

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

熊猫 - 比较正/负值

我有一个数据帧"df":

    x  y
0   1  -1
1  -2  -3
2   3   4
3   4   5
4   9   6
Run Code Online (Sandbox Code Playgroud)

我试图确定x和y值的百分比在正面或负面方面是一致的.因此,如果x为正且y为正,则这将是正确的答案.如果x和y都是负数,那就是正确的.如果x和y不同,那就错了.有没有快速的方法来做到这一点?最后,我只是想知道所有行中有多少百分比都有正确的答案.

(ps实际数据帧中有1M +行)

谢谢

python pandas

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

Pandas - 将值转换为1和0的快速方法

我有一个数据帧"df":

   x
0 -2
1  2
2 -4
3  2
4  9
5 -2
Run Code Online (Sandbox Code Playgroud)

我试图找到一种快速创建新列df ['binary']的方法,其中df ['x']中的所有正值都输入为1,而df ['x']中的负值输入为0在新的df ['binary']列中.真实的框架非常大,所以我试图用速度来做这件事.任何帮助赞赏.

谢谢

python pandas

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