我想在Same Query中使用WhereIn和Groupby来获取Result.
我试过这个:
$loadids=explode("#@*",$reciptdet->loading_id);
$loadingdatas=DB::table('loading')->groupBy('vehicle_no')->whereIn('id',$loadids)->get();
Run Code Online (Sandbox Code Playgroud)
但我收到此错误消息:
SQLSTATE [42000]:语法错误或访问冲突:1055'sbrtpt.loading.id'不在GROUP BY中(SQL:select*from loading其中id为(14,15,16)group by vehicle_no)
我有一个数据框,其结构如下:
Date ticker adj_close
0 2016-11-21 AAPL 111.730
1 2016-11-22 AAPL 111.800
2 2016-11-23 AAPL 111.230
3 2016-11-25 AAPL 111.790
4 2016-11-28 AAPL 111.570
...
8 2016-11-21 ACN 119.680
9 2016-11-22 ACN 119.480
10 2016-11-23 ACN 119.820
11 2016-11-25 ACN 120.740
...
Run Code Online (Sandbox Code Playgroud)
我如何根据adj_close
对比的股票进行情节绘制Date
?
我怎样才能格式化IPython html显示的pandas数据帧呢
据我所知,numpy
有设施set_printoptions
,我可以这样做:
int_frmt:lambda x : '{:,}'.format(x)
np.set_printoptions(formatter={'int_kind':int_frmt})
Run Code Online (Sandbox Code Playgroud)
和其他数据类型类似.
但是,当在html中显示数据帧时,IPython不会选择这些格式选项.我还需要
pd.set_option('display.notebook_repr_html', True)
Run Code Online (Sandbox Code Playgroud)
但是如上所述的1,2,3.
编辑:下面是我对2和3的解决方案(不确定这是最好的方法),但我仍然需要弄清楚如何使数字列右对齐.
from IPython.display import HTML
int_frmt = lambda x: '{:,}'.format(x)
float_frmt = lambda x: '{:,.0f}'.format(x) if x > 1e3 else '{:,.2f}'.format(x)
frmt_map = {np.dtype('int64'):int_frmt, np.dtype('float64'):float_frmt}
frmt = {col:frmt_map[df.dtypes[col]] for col in df.columns if df.dtypes[col] in frmt_map.keys()}
HTML(df.to_html(formatters=frmt))
Run Code Online (Sandbox Code Playgroud) 我试图从我拥有的数据框中删除空格.列名称如下所示.我试图获取名称之间的空格,并将其替换为"_",无论何时出现.
['join_date' 'fiscal_quarter' 'fiscal_year' 'primary_channel'
'secondary_channel' 'customer_count' 'new_members' 'revisit_next_day'
'revisit_14_day' 'demand_1yr' 'revisit_next_day_rate'
'revisit_14_day_rate' 'demand_1yr_per_new_member' u'ch_Ad Network'
u'ch_Affiliate' u'ch_Branded SEM' u'ch_DSP' u'ch_Daily Email'
u'ch_Daily Messaging' u'ch_Direct' u'ch_Direct Publisher' u'ch_Email'
u'ch_Feeds' u'ch_Native' u'ch_Non-Branded SEM' u'ch_Organic Search'
u'ch_Paid Social' u'ch_Site' u'ch_Special Email' u'ch_Television'
u'ch_Trigger Email' u'ch_UNMAPPED' u'ch_Unpaid Social' u'quarter_Q2'
u'quarter_Q3' u'quarter_Q4']
Run Code Online (Sandbox Code Playgroud) 我有一个系列有一些日期时间(作为字符串)和一些空值为'nan':
import pandas as pd, numpy as np, datetime as dt
df = pd.DataFrame({'Date':['2014-10-20 10:44:31', '2014-10-23 09:33:46', 'nan', '2014-10-01 09:38:45']})
Run Code Online (Sandbox Code Playgroud)
我正在尝试将这些转换为日期时间:
df['Date'] = df['Date'].apply(lambda x: dt.datetime.strptime(x, '%Y-%m-%d %H:%M:%S'))
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
time data 'nan' does not match format '%Y-%m-%d %H:%M:%S'
Run Code Online (Sandbox Code Playgroud)
所以我试着把它们变成实际的空值:
df.ix[df['Date'] == 'nan', 'Date'] = np.NaN
Run Code Online (Sandbox Code Playgroud)
并重复:
df['Date'] = df['Date'].apply(lambda x: dt.datetime.strptime(x, '%Y-%m-%d %H:%M:%S'))
Run Code Online (Sandbox Code Playgroud)
但后来我得到了错误:
必须是字符串,而不是浮动
解决这个问题的最快方法是什么?
我想提取列的所有唯一值组合Col1
,Col2
和Col3
.假设有以下数据帧df
:
df =
Col1 Col2 Col3
12 AB 13
11 AB 13
12 AB 13
12 AC 14
Run Code Online (Sandbox Code Playgroud)
答案是:
unique =
Col1 Col2 Col3
12 AB 13
11 AB 13
12 AC 14
Run Code Online (Sandbox Code Playgroud)
我知道如何获得特定列的唯一值,即df.Col1.unique()
不确定唯一的组合.
我正在尝试启动Jupyter,其基本目录是我的第二个硬盘驱动器的根目录.我曾经能够用Ipython 3.x做到这一点,直到我升级到最新版本.
如果我cd到D:\并输入jupyter notebook --debug
跟踪的结尾我得到的是:
[I 12:15:14.792 NotebookApp] Refusing to serve hidden directory, via 404 Error
[D 12:15:14.792 NotebookApp] Using contents: services/contents
[W 12:15:14.813 NotebookApp] 404 GET /tree (::1) 23.00ms referer=None
[D 12:15:15.062 NotebookApp] 304 GET /custom/custom.css (::1) 152.00ms
Run Code Online (Sandbox Code Playgroud)
我试过从提升的命令提示符运行命令,但无济于事.
如何在Windows上的D:\驱动器的根目录下运行jupyter?
我有一个数据框,其中包含(((
我想要替换的字符.但这样做后我得到错误:
data = [{'Title': 'set1((("a", "b", "c")))'},
{'Title': 'set2((("d", "e", "f")))'},
{'Title': 'set3((("g", "h", "i")))'},
{'Title': 'set4((("j", "k", "l")))'},
{'Title': 'set5((("m", "n", "o")))'},
{'Title': 'set6((("p", "q", "r")))'}]
df = pd.DataFrame(data)
df
# df['Title'] = df['Title'].str.replace('set', 'M') # Works correctly
df['Title'] = df['Title'].str.replace('(((', '>>') # Not working
Run Code Online (Sandbox Code Playgroud)
如何解决此错误以便替换(((
by >>
和)))
by <<
?
我正在使用Python 3.2.2.
我正在寻找一个将二进制字符串(例如'0b1010'或'1010')转换为二进制文字的函数,例如0b1010(不是字符串或十进制整数字面值).
滚动我自己很容易,但我更喜欢使用标准功能或者已经完善的功能:我不想"重新发明轮子".
无论如何,我很高兴看到你们可能拥有的任何有效算法.
考虑字典d
:
d = {'A': {'x': 1, 'y': 1}, 'B': {'y': 1, 'z': 1}}
Run Code Online (Sandbox Code Playgroud)
当我将它传递给pandas.DataFrame构造函数时,我知道我将缺少第 x 行、B 列和 z 行、A 列的值。
df = pd.DataFrame(d)
df
A B
x 1.0 NaN
y 1.0 1.0
z NaN 1.0
Run Code Online (Sandbox Code Playgroud)
我想要那些NaN
用0
. 我当然知道我可以填写。
df.fillna(0)
Run Code Online (Sandbox Code Playgroud)
但现在他们都是花车
A B
x 1.0 0.0
y 1.0 1.0
z 0.0 1.0
Run Code Online (Sandbox Code Playgroud)
是的!我可以强迫他们使用整数
df.fillna(0).astype(int)
A B
x 1 0
y 1 1
z 0 1
Run Code Online (Sandbox Code Playgroud)
或者!我本可以用巧妙的字典理解构建一个系列,并用 fill_value 参数拆开
pd.Series(
{(i, j): v for j, …
Run Code Online (Sandbox Code Playgroud)