我想生成两个日期之间的日期列表,并将它们以字符串格式存储在列表中。此列表可用于与我拥有的其他日期进行比较。
我的代码如下:
from datetime import date, timedelta
sdate = date(2019,3,22) # start date
edate = date(2019,4,9) # end date
def dates_bwn_twodates(start_date, end_date):
for n in range(int ((end_date - start_date).days)):
yield start_date + timedelta(n)
print(dates_bwn_twodates(sdate,edate))
Run Code Online (Sandbox Code Playgroud)
我现在的输出:
<generator object dates_bwn_twodates at 0x000002A8E7929410>
Run Code Online (Sandbox Code Playgroud)
我的预期输出:
['2019-03-22',.....,'2019-04-08']
Run Code Online (Sandbox Code Playgroud)
我的代码有问题。
我有两个数据框:主数据框和辅助数据框。我正在将辅助连接到主连接。它导致几行中出现 NaN,我想填充它们,而不是全部。代码:
df1 = pd.DataFrame({'Main':[00,10,20,30,40,50,60,70,80]})
df1 =
Main
0 0
1 10
2 20
3 30
4 40
5 50
6 60
7 70
8 80
df2 = pd.DataFrame({'aux':['aa','aa','bb','bb']},index=[0,2,5,7])
df2 =
aux
0 aa
2 aa
5 bb
7 bb
df = pd.concat([df1,df2],axis=1)
# After concating, in the aux column, I want to fill the NaN rows in between
# the rows with same value. Example, fill rows between 0 and 2 with 'aa', 2 and 5 NaN, 5 and …Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的数据框
df =
index data1 data2
0 20 120
1 30 456
2 40 34
Run Code Online (Sandbox Code Playgroud)
如何将上面 df 中的两列组合成一个列表,以便第一行元素先出现,然后是第二行。
我的预期输出
my_list = [20,120,30,456,40,34]
Run Code Online (Sandbox Code Playgroud)
我的代码:
list1 = df['data1'].tolist()
list2 = df['data2'].tolist()
my_list = list1+list2
Run Code Online (Sandbox Code Playgroud)
这不起作用?
我正在尝试使用浮点数组创建 3D 曲面图。我尝试了可用的答案,但没有成功。
我的代码:
ydata xdata zdata
0 667.029710 38.666953 2156.370026
1 673.518030 38.578639 2167.733673
2 928.285970 39.558060 2984.315454
3 947.973966 39.329530 3065.414025
4 904.826638 40.241960 3071.355114
5 901.673720 40.259228 2947.752668
6 910.980404 41.478425 2906.467214
7 916.008852 41.813555 2933.900440
8 913.971114 41.583315 2955.543549
9 933.040692 42.577816 2979.264288
import plotly.graph_objects as go
import plotly.graph_objs
import pandas as pd
import numpy as np
xdata = df['xdata'].values
ydata = df['ydata'].values
zdata = df['zdata'].values
plotly.offline.plot({"data":[go.Surface(z=zdata, x=xdata, y=ydata)],
"layout":plotly.graph_objs.Layout(title='Some data', autosize=False,
width=500, height=500,
margin=dict(l=65, r=50, …Run Code Online (Sandbox Code Playgroud) 我很难绘制 Plotly 3d 曲面图。我有一个 4000 行和三列的大数据框。我确实在这里提问并得到了一些答案。当我尝试它们时,代码运行需要几个小时,但我看不到任何情节。我想确认我所做的是正确的。因为我是曲面图的新手。
我的代码:
import plotly.graph_objects as go
import plotly.graph_objs
import plotly
df =
index x y z
0 10.2 40.5 70.5
1 30.5 30.2 570.5
.
.
4000 100.5 201.5 470.5
df['z']= [df['z'].tolist for x in df.index]
df =
index x y z
0 10.2 40.5 [70.5,570.5,..,470.5]
1 30.5 30.2 [70.5,570.5,..,470.5]
.
.
4000 100.5 201.5 [70.5,570.5,..,470.5]
zdata = [df['z'].tolist()]*len(df)
plotly.offline.plot({"data":[go.Surface(x=df['x'].values,
y=df['y'].values,
z = df['z'].values)],
"layout":plotly.graph_objs.Layout(title='Some data', autosize=False,
width=600, height=600,
scene = dict(xaxis_title='x',
yaxis_title='y',
zaxis_title='z'),
margin=dict(l=10, …Run Code Online (Sandbox Code Playgroud) 我想向列添加描述,例如我收集数据的数据源。这样的事可能吗?大约 8 年前,有人在“ Adding my own description attribute to a Pandas DataFrame”中提出了类似的问题,但没有答案。
我的代码:
df=
index colA colB
#description from SensorA SensorB # Description row
1
2
3
Run Code Online (Sandbox Code Playgroud) 我有一个大数据框。我想用 true 和 false 替换 float 1.0 和 0.0。
我的代码:
import pandas as pd
df = pd.DataFrame({"A":[1.0,0.0,1.0,0.0]})
df.replace(1.0,True,inplace=True).replace(0.0,False,inplace=True)
Run Code Online (Sandbox Code Playgroud)
当前输出:
AttributeError: 'NoneType' object has no attribute 'replace'
Run Code Online (Sandbox Code Playgroud)
如果我分两行分别做,它就会起作用。我想用一行来做。
我有以特殊字符开头@并以 结尾的数字900,现在我想提取之间的文本,排除它们。我的代码:
>> cat demo.txt
asdfsdf
@ 1234900 asdf dfasd
asdf @ 1345900-asdfad wer
@ 678900-asdfa adf
>> grep -Po '@\K.*900' demo.txt
1234900
1345900
678900
Run Code Online (Sandbox Code Playgroud)
预期答案:
1234
1345
678
Run Code Online (Sandbox Code Playgroud) 我的代码有时会生成 nan 的op_list = [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]. 我想知道是否所有元素都是nans。
我的代码和当前输出:
op_list = [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]
print(np.isnan(op_list))
array([ True, True, True, True, True, True, True, True, True,
True])
Run Code Online (Sandbox Code Playgroud)
我的预期输出:
True
Run Code Online (Sandbox Code Playgroud) 我有一个数据框,其中重复出现的行具有不同的名称。我想删除较少出现的行。我的数据框非常大。我这里只提供小尺寸。
数据框:
df =
name value
0 A 10
1 B 20
2 A 30
3 A 40
4 C 50
5 C 60
6 D 70
Run Code Online (Sandbox Code Playgroud)
在上面的数据帧中,B 和 D 行出现的次数较少。小于 1。我想删除/删除所有出现次数小于 2 的此类行。
我的代码:
##### Net strings
net_strs = df['name'].unique().tolist()
strng_list = df.group.unique().tolist()
tempdf = df.groupby('name').count()
##### strings that have less than 2 measurements in whole data set
lesstr = tempdf[tempdf['value']<2].index
##### Strings that have more than 2 measurements in whole data set
strng_list = np.setdiff1d(net_strs,lesstr).tolist()
##### Removing the …Run Code Online (Sandbox Code Playgroud)