我有两个系列s1和s2相同(非连续)索引.如何组合s1和s2成为DataFrame中的两列并将其中一个索引保留为第三列?
我pandas.to_datetime用来解析数据中的日期.Pandas默认表示日期,datetime64[ns]即使日期仅为每日日期.我想知道是否有一种优雅/巧妙的方式将日期转换为datetime.date或者datetime64[D]当我将数据写入CSV时,日期不会附加00:00:00.我知道我可以逐个元素地手动转换类型:
[dt.to_datetime().date() for dt in df.dates]
Run Code Online (Sandbox Code Playgroud)
但这真的很慢,因为我有很多行,这有点挫败了使用的目的pandas.to_datetime.有没有办法立即转换dtype整个列?或者,是否pandas.to_datetime支持精度规范,以便在处理日常数据时可以摆脱时间部分?
我试过了:
x=pandas.DataFrame(...)
s = x.take([0], axis=1)
Run Code Online (Sandbox Code Playgroud)
并s获得一个DataFrame,而不是一个系列.
我可能做的事非常愚蠢,但我很难过.
我有一个数据框,我想替换特定列中超过零值的值.我原以为这是实现这个目标的一种方式:
df[df.my_channel > 20000].my_channel = 0
Run Code Online (Sandbox Code Playgroud)
如果我将频道复制到新的数据框中,那很简单:
df2 = df.my_channel
df2[df2 > 20000] = 0
Run Code Online (Sandbox Code Playgroud)
这正是我想要的,但似乎不能将频道作为原始数据帧的一部分.
为什么Pandas告诉我我有对象,尽管所选列中的每个项都是一个字符串 - 即使在显式转换之后也是如此.
这是我的DataFrame:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 56992 entries, 0 to 56991
Data columns (total 7 columns):
id 56992 non-null values
attr1 56992 non-null values
attr2 56992 non-null values
attr3 56992 non-null values
attr4 56992 non-null values
attr5 56992 non-null values
attr6 56992 non-null values
dtypes: int64(2), object(5)
Run Code Online (Sandbox Code Playgroud)
其中五个是dtype object.我明确地将这些对象转换为字符串:
for c in df.columns:
if df[c].dtype == object:
print "convert ", df[c].name, " to string"
df[c] = df[c].astype(str)
Run Code Online (Sandbox Code Playgroud)
然后,df["attr2"]仍然有dtype object,虽然type(df["attr2"].ix[0]揭示str,这是正确的. …
在Pandas中,当我选择一个只在索引中有一个条目的标签时,我会返回一个系列,但是当我选择一个包含多个条目的条目时,我会返回一个数据框.
这是为什么?有没有办法确保我总能找回数据框?
In [1]: import pandas as pd
In [2]: df = pd.DataFrame(data=range(5), index=[1, 2, 3, 3, 3])
In [3]: type(df.loc[3])
Out[3]: pandas.core.frame.DataFrame
In [4]: type(df.loc[1])
Out[4]: pandas.core.series.Series
Run Code Online (Sandbox Code Playgroud) 我试着多次解决这个问题并放弃.现在,当我再次见到他时,我决定寻求一些帮助.
我有我的传奇代码:
legend:
{
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0,
labelFormatter: function()
{
if(this.name!='Series 1')
{
return this.name;
}
else
{
return 'Legend';
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我将"图例"的返回值更改为"",则文本未显示但图例顶部仍有"破折号".如果我不使用标签格式化功能,我的"系列1"+"破折号"就像我的传奇中的第一行.如何隐藏它们?
请注意我的版本是:Highcharts-2.0.5
这是我想要删除的传奇和破折号的简单视图:
有没有办法从熊猫系列中删除NaN值?我有一个系列可能有也可能没有NaN值,我想要删除所有NaN删除的系列副本.
我有一个熊猫系列sf:
email
email1@email.com [1.0, 0.0, 0.0]
email2@email.com [2.0, 0.0, 0.0]
email3@email.com [1.0, 0.0, 0.0]
email4@email.com [4.0, 0.0, 0.0]
email5@email.com [1.0, 0.0, 3.0]
email6@email.com [1.0, 5.0, 0.0]
Run Code Online (Sandbox Code Playgroud)
我想将其转换为以下DataFrame:
index | email | list
_____________________________________________
0 | email1@email.com | [1.0, 0.0, 0.0]
1 | email2@email.com | [2.0, 0.0, 0.0]
2 | email3@email.com | [1.0, 0.0, 0.0]
3 | email4@email.com | [4.0, 0.0, 0.0]
4 | email5@email.com | [1.0, 0.0, 3.0]
5 | email6@email.com | [1.0, 5.0, 0.0]
Run Code Online (Sandbox Code Playgroud)
我找到了一种方法,但我怀疑它是更有效的方法:
df1 = pd.DataFrame(data=sf.index, columns=['email']) …Run Code Online (Sandbox Code Playgroud) 我对熊猫有点新鲜.我有一个1行乘23列的pandas数据框.
我想把它转换成一个系列?我想知道最狡猾的方式是什么?
我试过了,pd.Series(myResults)但它抱怨ValueError: cannot copy sequence with size 23 to array axis with dimension 1.要理解它仍然是数学术语中的"载体",这还不够智能.
谢谢!