我有一个由许多堆叠的时间序列组成的数据帧。索引是(poolId,month),其中两者都是整数,“month”是自2000年以来的月数。计算多个变量滞后一个月版本的最佳方法是什么
现在,我做了一些类似的事情:
cols_to_shift = ["bal", ...5 more columns...]
df_shift = df[cols_to_shift].groupby(level=0).transform(lambda x: x.shift(-1))
就我的数据而言,这花了我整整60秒的时
我有一些不规则的时间序列数据,带有时间戳,每个时间戳上都有观测值,以熊猫为单位。不规则基本上意味着时间戳是不均匀的,例如,两个连续时间戳之间的间隔是不均匀的
例如,数据可能看起来像
Timestamp Property
0 100
1 200
4 300
6 400
6 401
7
有一个简单的问题,我还没有找到一个简单的答案。例如,可以使用此数据框:
A = pd.Series([0.1,-0.2,0.14,0.12,-0.11])
B = pd.Series([1.0,3.0,2.0,6.0,9.0])
df = pd.DataFrame({'A':A,'B':B})
我现在想创建一个列C,如下所示:
C_i = A_i*(B_i+C_{i-1})
i、 e.要计算C的值,我需要以前计算的C值。这可以通过一个简单的for循环完成,但我想使用map、apply或其他一
我有两个按日期索引的熊猫系列,如下所示,在pd_系列中有大约4000万个元素,s1是pd_系列的一个排序子阵列,有大约2000万个元素。我试图通过执行以下操作来避免对整个pd_系列进行排序
s1 = pd_dc_series
s2 = pd_series[dt_dc_end+2:dt_end]
s = pd.concat([s1, s2])
s.sort()
其中,pd_dc_series和pd_series是pandas series,dt_dc_end和dt_end是pandas.tsli
问题是,当我转置数据帧时,转置后的数据帧的标题成为索引数值,而不是“id”列中的值。有关示例,请参见以下原始数据:
我想转置的原始数据(但保持0,1,2,…索引不变,并在最终转置的数据帧中将“id”更改为“id2”)
DataFrame在我转置后,请注意标题是索引值,而不是“id”值(这是我所期望和需要的)
逻辑流
首先,这有助于去除作为标题的数字索引:
然后,这有助于摆脱作为标题的索引编号,但现在“id”和“index”被洗牌了:&
但现在我的id和索引值由于某种原因被打乱了
如何解决此问
因此,我在同一轴上绘制两个数据帧:
dataframe1.plot(ax=ax1, marker='o', linestyle='None')
dataframe1fit.plot(ax=ax1, legend=False)
仅为第一个数据帧提供legened,但未在图例中显示任何标记(仅图例contians文本),因此,如果我将:
ax1.legend(numpoints=1)
标记已添加到图例中,但dataframe1fit绘图的图例条目也可见(图例=False无效)。那么,如何在ax1
下面是我正在处理的一些数据的示例
A B C
2014-01-01 4072.0 9871.0 NaN
2014-02-01 NaN 9948.0 NaN
2014-03-01 NaN 10248.0 NaN
2014-04-01 NaN 9872.0 NaN
2014-05-01 NaN 12438.0 NaN
2014-06-01 NaN 10588.0 NaN
2014-07-01 NaN 8718.0 NaN
20
我必须检查Dataframe中的两列之间是否有空值。我使用以下方法获取了数据帧中第一个非空值和最后一个非空值的位置:
x.first_valid_index()
x.last_valid_index()
现在我需要找出这两个位置之间是否有任何空值我认为这与检查所有NaN值到布尔掩码和总和真值值是一样的:
x = pd.DataFrame({'a':[1,2,np.nan, np.nan],
'b':[np.nan, 7,np.nan,np.nan],
标签: Pandas
group-bygreat-circle
我有以下数据:
Trip Start_Lat Start_Long End_lat End_Long Starting_point Ending_point
Trip_1 56.5624 -85.56845 58.568 45.568 A B
Trip_1 58.568 45.568 -200.568 -290.568
我有一个该州犯罪率的数据框架,我想把犯罪率最高的10个郊区排在前面。目前,我可以使用.rank(),但我想输出郊区的名称,而不是犯罪的价值
谢谢 我被迫推断数据是什么样子,因为您没有提供数据样本。但是,如果数据是这样的
>>> df = pd.DataFrame({'state':['NH', 'CA', 'MA', 'FL'], 'crime_rates':[0.5, 1.3, 0.9, 1.1]})
>>> df
crime_rates state
我真的被难倒了
我有一个多索引数据框,看起来像这样
data
index1 index2
0 1 8
2 7
3 6
4 9
1 1 3
2 4
3 3
4 6
2 1 5
2 5
。。。。等等
我试图根据index
我有两个具有相同行数的数据帧:1434,我想将它们连接到轴1:
res = pd.concat([df_resolved, df1], axis=1)
这两个数据帧没有任何具有相同名称的列。我只想像这样加入他们:
df1: df2:
col1 col2 | col3 col4
1 0 | 9 0
6 0 | 0 0
=
concatenated_df:
col1 col2 col3 col4
1 0 9 0
6 0
标签: Pandas
uniqueprimary-keyflask-sqlalchemypandas-to-sql
我已经读过关于pandas to_sql解决方案的内容,这些解决方案可以避免向数据库中添加重复记录。我正在处理csv日志文件,每次我上传一个新的日志文件,然后读取数据,并通过创建一个新的数据框进行一些更改。
然后我执行到\u sql('Logs',con=db.engine,如果存在='append',index=True)。使用if_存在arg i确保每次从新文件创建的新数据帧都附加到现有数据库中。问题是它不断添加重复的值。我想确保,如果一个已经上传的文件被错误地再次上传,它将不会被附加到数据
我必须使用'index_col=False'选项从文本文件加载数据帧,以避免标题和记录之间的偏移
现在已经正确地加载和清理了数据帧,我需要根据由前4列组成的键重新编制索引
问题1:推荐选项:我应该使用复合键创建一个额外的列,还是有更有效的替代方案?
问题2:如果我需要根据复合键重新编制索引,有没有关于如何在数据帧中执行此操作的提示?您可以简单地将4列放入索引中,并使用set_index[col1,col2,col3,col4],inplace=True。您可以参考以下文档:
如果要检查索引的唯一
我有一个包含以下行的数据框:-
restaurantName cuisine totalRating delivery
Bindia Indian Bistro indian 4.0 Yes
Bhoj Indian Cuisine indian 4.5 Yes
Indian Roti House indian 4.0 Yes
Utsav
在探索xy图表上具有多个点的数据集时,我可以调整alpha和/或标记大小,以提供点最密集聚集位置的快速视觉印象。但是,当我放大或放大窗口时,需要使用不同的alpha和/或标记大小来提供相同的视觉效果
当我扩大窗口或放大数据时,如何使alpha值和/或标记大小增加?我在想,如果我将窗口面积加倍,我可以将标记大小加倍,和/或取alpha的平方根;与之相反的是缩放
请注意,所有点都具有相同的大小和alpha。理想情况下,该解决方案可以与plot一起使用,但如果只能使用分散处理,则也会很有帮助。您可以通
我有两个数据帧。第一个(文件_1),包含一个ID列和深度from和depth to
ID Depth_From Depth_To
0 HLD032 611.10 612.00
1 HLD032 612.00 612.20
2 HLD032 612.20 614.80
3 HLD032 614.80 616.20
4 HLD032
我编写了一个Python程序,用于根据谷歌的财务数据绘制烛台图。但我无法获取图形(没有显示任何内容)。我认为问题在于X坐标,即df.index。有人能帮我解决这个问题吗
from pandas_datareader import data
import datetime
from bokeh.plotting import figure, show, output_file
start=datetime.datetime(2016,3,1)
end=datetime.datet
我有一个由熊猫制作的数据框,如下所示:
id-t t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12
id1 2 4 2 0 5 4 4 4 5 5 5 5
id2 0 5 4 3 5 5 6 7 7 8 9 9
id3 2 0 5 4 4 3 5 5 6 7 7 9
id4 4
标签: Pandas
Numpy
labelconditional-statementsvariable-assignment
我想根据两个条件为我的数据集分配一个标签
dataset['Class'] = np.where(dataset['Motor Frequency (Hz)']>=30 & dataset['FCW Status']=6, 'Normal', 'Anomaly')
但我有一个错误:
无法将数据类型的[float64]数组与类型为[bool]的标量进行比较。我认为需要添加条件,因为运算符优先级和更改为==:
您缺少a=需要是数据集['FCW Status']==6,但它不起作用。由
我的数据框中有两个时间列:date1和date2。
我一直认为,两者都是日期和时间格式。然而,我现在必须计算两者之间的天数差,这不起作用
我运行以下代码来分析数据:
df['month1'] = pd.DatetimeIndex(df['date1']).month
df['month2'] = pd.DatetimeIndex(df['date2']).month
print(df[["date1", "date2", "month1", "month2"]].head(10))
print(
我想得到一列的中值,然后使用另一列的关联值。比如说,
col1 col2 index
0 1 3 A
1 2 4 A
2 3 5 A
3 4 6 B
4 5 7 B
5 6 8 B
6 7 9 B
我按指数分组,得到第1列的中值,并使用第2列的相关值得到
col1 col2 index
2 4
我有相同列名的数据帧,所以我合并了它们
df1
df2
df3
合并后,生成的数据帧如下所示:
df=pd.merge(df1,df2,df3, on='wave',axis=1,join='inner')
wave num_x stlines_x num_x stlines_x num_x stlines_x
0 4050.32 3.0 0.282690 3 0.28616 3.0 0.282690
1 4208.98
我有一个熊猫数据框,看起来像
Start Time
0 2017-06-23 15:09:32
1 2017-05-25 18:19:03
2 2017-01-04 08:27:49
3 2017-03-06 13:49:38
4 2017-01-17 14:53:07
5 2017-06-26 09:01:20
6 2017-05-26 09:41:44
7 201
出于某种原因,我需要以这种格式输出到csv,并在每个列名称周围加上引号,我想要的输出如下所示:
"date" "ret"
2018-09-24 0.00013123989025119056
>>> df
date ret
0 2018-09-24 0.000131
我正在尝试
import csv
import pandas as pd
Y_pred.index.name = "\"date\""
Y_pred.name = "\'ret
我想知道是否有可能在数据帧/系列中的缺失值中添加1(或n)
例如:
1
10
nan
15
25
nan
nan
nan
三十
将返回:
1
10
11
15
25
26
27
28
三十
谢谢,使用.ffill+groupby.cumcount的结果来确定n
df[0].ffill() + df.groupby(df[0].notnull().cumsum()).cumcount()
0 1.0
1 10.0
2 11.0
3 15.0
4 25.0
5
我有一个数据帧,其中一些是空的。我想把它变成一个None字符串,这样我可以比NaN值更容易地解析它
df = df.replace(np.nan, 'None', regex=True)
使用上面的代码。None作为python对象,NaN是一种更适合表示缺失数据的浮点类型。你能解释一下你想做什么吗?regex=True这行不通,特别是因为你没有替换字符串(np.nan不是字符串)
标签: Pandas
group-byaggregate-functionspandas-groupby
我不理解出现的失败,也不理解为什么“应用于组”在两个组中失败,但在一个组中失败
我已经解决了我的总体目标(我试图将一些列串连接在一起),但我担心这些失败会让我有些困惑
参考的驱动目标是能够
import pandas as pd
import numpy as np
def main():
df = pd.DataFrame([["a", "b", "c", "k"],["d", "e", "f", "l"],['g','h','i', "J"]], columns=["ay", "b
我有一个熊猫数据框,带有每小时风速和风向的日期时间索引。我的timeseries涵盖了31年,我需要制作每月风玫瑰的年度图像。这将转化为31幅图像,每个图像有12个子图
我已经想出了如何使用windrose软件包获得windrose。使用GroupBy,我可以每年和/或每月对数据进行分组
我尝试过按年和月进行分组,但不知道如何按年进行迭代以生成月度图
grouped = data.groupby(by=[data.index.year, data.index.month])
接下来,我尝试做一
我使用pandas得到一个共现矩阵,如下所示
lst = [
['a', 'b'],
['b', 'c', 'd', 'e'],
['a', 'd'],
['b', 'e']
]
u = (pd.get_dummies(pd.DataFrame(lst), prefix='', prefix_sep='')
.groupby(level=0, axis=1)
.sum())
v = u.T.dot(u)
v.values[(np.r
我使用SCIKDE函数和Pandas plot.KDE拟合一组数据的分数分布,范围为1-13
我用gridsearchCV方法设置了带宽。然而,绘制分布图时,值的范围达到-2.5和17.5。这些数据超出了1-13的数据范围。
我附上了发行版本身的图片,并将在下面展示一些代码:
plot_m = df_match.plot.kde(bw_method = 0.6842105263157895)
我的问题是,我如何为这样的核密度估计器设置边界?分数超出数据范围的概率应为0。核密度估计通常使用高斯凹
我有一个数据帧:
names = ['OH', 'HL', 'LC', 'OL', 'LH', 'HC']
percentiles = [.75, .90, .95, .98]
for col_name in names:
for perc in percentiles:
k = df[df[col_name] > df[col_name].quantile(perc)]
k.loc[:, 'Level'] = str(perc)
我有两个数据帧:
item | label
213 'red'
112 'green'
332 'orange'
...
还有另一个数据帧,其行为本质上类似于字典:
old_label | new_label
'red' 'red and bright'
'orange' 'mild orange'
如何应用从第二个数据帧到第一个数据帧的映射,以获得:
item | label
213 'red an
如何删除以下系列中的Bale+Damon-前缀
import pandas as pd
x = pd.Series(['Bale + Damon - Le Mans 66', 'Bale + Damon - Ford', 'Bale + Damon - vs.', 'Bale + Damon - Ferrari'])
print(x)
0 Bale + Damon - Le Mans 66
1 Bale + Damon - Ford
2 Bale + Damon - vs.
3
将包含数据类型为int64的列的pandas数据帧加载到配置单元表时出错
当我排除int64数据类型时,数据将加载到配置单元,但当我包含数据类型时,它将失败。B和C的数据值摘录为1212345678
熊猫
df.dtypes
A object
B int64
C int64
D float6
df_s.to_parquet("data.parquet")
蜂巢
错误:
错误:java.io.IOException:…:java.lang.ClassCastExcept
我只是在试图从脚本对某些数据库执行一些I/O操作时遇到了麻烦
当我想要访问数据库时,我习惯使用and来处理
我的数据通常存储为和/或的等效项
困难
为了从数据库表中读取数据;
使用:
我可以依赖其方法,该方法将作为参数con,如文档中所述:
con : SQLAlchemy connectable (engine/connection) or database str URI
or DBAPI2 connection (fallback mode)'
Using
我刚开始学习pandas,当时我想在2013年创建一个fig,ax=plt.subplots对象并将该图添加到创建的ax上,绘制一个站点平均值条形图。运行代码'Line2D'的这部分时,我遇到了这个错误。对象没有属性'kind'
fig,ax = plt.subplots(1)
x= data.columns
y=data['2013'].mean()
ax.plot(x,y,kind='bar')
```````````````````````
[this is my DATASET]
如何将单个图表(趋势线)wrt中的以下数据转换为名称
name month
x April 80.0
February 88.0
January 82.0
March 48.0
y
我有一个数据框,我需要按数据列的最大值排序。我在执行排序时遇到问题,因为我发现的所有排序示例在执行排序时都对数据帧中的所有列进行操作。在这种情况下,我只需要对列的子集进行排序。第一列包含日期,其余90列包含数据。90个数据列当前按其列名的字母顺序排序。我想按最大值的降序对它们进行排序,最大值恰好在最后一行
在更大的方案中,这个问题是关于如何对数据帧中的一系列列执行排序,而不是对数据帧中的所有列进行排序。例如,在某些情况下,我只需要对数据帧的第2列到第12列进行排序,而将其余的列保留在它们现有的顺
我将举例说明
我有以下数据:
id day week
1 10 3
2 NaN 4
NaN NaN 5
我需要这个输出:
id [2]
day [1, 2]
week False (or smth like this)
输出显示带有NaN值的索引对于每列
我已经为此编写了代码,但我不喜欢它:
index_nan = []
for col in data.columns:
if data[col].isnul
我有以下数据帧:
df1:
及
df2:
我想在df2和df1之间进行连接。如果我做一个简单的连接,我得到
account employees id name
us 5 2 twiggs
us 5 3 twiggs
但是,我想添加一些自定义逻辑,这样我就可以使用另一个查找函数来计算id,并在2和3之间进行选择,从而生成
account employees id nam
我正在尝试下载每个BTCUSD交易的市场数据,并使用以下代码将其存储在csv文件中
from binance_f import RequestClient
from datetime import datetime
import pandas as pd
import time
def download():
request_client = RequestClient(api_key=x,
secret_key
我需要将csv文件中的参数化数据读取到数据框中进行统计分析。我想使用层次索引。我有10组参数,共有70个变量。excel表示形式的样例剪切:
我尝试使用n-d nparray构建df,以避免手动定义元组,但在使用数组、从_乘积、每个参数合并多个数据帧等之间迷失了方向:
params = np.array([[['Baseline'], ['orig']]
, [['Threshold'], ['Thresh-2', 'Thresh+2', 'Thr
试图在这个GroupBy上提高速度,并提出用更快的代码替换它的想法
目标是创建一个“规范化名称”列,这是基于“位置ID”最频繁出现的列。如何以更有效的方式实现相同的结果
这是我的入门数据框架:
Company Name Location ID
0 jones LLC F55555JONE
1 jones LLC F55555JONE
2 jones F55555JONE
3 alpha Co F11111AL
有人知道标题中的问题是否已经解决了吗?
问题是pandas需要一个类型为Int64(而不是Int64)的列来处理空值,但如果试图将数据帧转换为拼花文件,则会出现以下错误:不知道如何转换数据类型:Int64
如果没有解决,是否有已知的解决方法
Dani您能否添加重现问题的代码?您正在使用哪些pyarrow和pandas版本?pandas版本0.25,使用fastparquet 0.2.1您可以尝试使用pyarrow 1.0.1而不是fastparquet吗?这应该支持Int64列。
刚刚接近熊猫的等级列。原始数据帧(df)有27列,如下所示(Ticker是索引):
我想修改列结构,以便第一级是报告日期,第二级是股份和毛利列。我尝试为一个ticker(AAPL)创建一个具有此结构的新数据帧,我使用的代码如下:
col = pd.MultiIndex.from_product([df['Report Date'], df[['Shares', 'Gross Profit']]])
df1 = pd.DataFrame(df.loc['AAPL'], columns=col)
稳定地将任务从excel转移到pandas,在创建依赖于分组和其他两列值的新列时,有哪些常用方法
在excel中,这可以通过a=B2/SUMIFS(B:B,a:a,A2)实现——熊猫中是否有类似的简单方法?我试过了,但运气不好
示例如下:
import pandas as pd
data = [{'GROUP': 1, 'VALUE': 3},
{'GROUP': 1, 'VALUE': 3},
{'GROUP': 1, 'VALUE': 4},
我有一个这样的数据集
item_id EAN Price
3434 232 34
3233 412 28
总共有54344个数据点
我想随机打印EAN中的40个值。我尝试了一些技巧,比如
df=pd.read_csv('item_desc.csv')
print(df['EAN'].random.rand(40))
但它不起作用。有人能给我推荐代码吗?你可以使用示例:
df.sample(n=40)
您可以使用示例:
df.sample(n=40)
我有一个很长的pyspark数据帧,如下所示:
+------+
|number|
+------+
|12.4 |
|13.4 |
|42.3 |
|33.4 |
|42.3 |
|32.4 |
|44.2 |
|12.3 |
|45.4 |
+------+
理想情况下,我希望将其重塑为nxn矩阵,其中n是sqrt(pyspark数据帧的长度)
虽然有一个解决方案,将其转换为一个numpy数组,然后将其重塑为nxn矩阵,但我希望在pyspark中完成。因为我的数据非常长(
标签: Pandas
beautifulsouppython-3.8
我正在使用以下代码:
import requests, pandas as pd
from bs4 import BeautifulSoup
if __name__ == '__main__':
url = 'https://www.har.com/homedetail/6408-burgoyne-rd-157-houston-tx-77057/3380601'
list_of_dataframes = pd.read_html(url)
但是,在\u数据框列表中,没有学校信
1 2 3 4 5 6 ...
下一页 最后一页 共 208 页