d = [{'ID': '1', 'pID': 1000, 'startTime':'2018.07.02T03:34:20', 'endTime':'2018.07.03T02:40:20'}, {'ID': '1', 'pID': 1000, 'startTime':'2018.07.02T03:45:20', 'endTime':'2018.07.03T02:50:20'}, {'ID': '2', 'pID': 2000, 'startTime':'2018.07.02T03:34:20', 'endTime':'2018.07.03T02:40:20'}, {'ID': '2', 'pID': 2000, 'startTime':'2018.07.02T03:45:20', 'endTime':'2018.07.03T02:50:20'}]
df = spark.createDataFrame(d)
Dates = namedtuple("Dates", "startTime endTime")
def MergeAdjacentUsage(timeSets):
DatesArray = []
for times in timeSets:
DatesArray.append(Dates(startTime=times.startTime, endTime=times.endTime))
return DatesArray
MergeAdjacentUsages = udf(MergeAdjacentUsage,ArrayType(Dates()))
df1=df.groupBy(['ID','pID']).agg(MergeAdjacentUsages(F.collect_list(struct('startTime','endTime'))).alias("Times"))
display(df1)
Run Code Online (Sandbox Code Playgroud)
我想要的只是将列值设置为 UDF 返回的结构数组。它给我的错误是:
类型错误:new () 恰好需要 3 个参数(给定 1 个)
() 22 return DatesArray 23 ---> 24 MergeAdjacentUsages = udf(MergeAdjacentUsage,ArrayType(Dates())) 25 26 df1=df.groupBy(['ID','pID'] 中的 TypeError Traceback (最近一次调用最后一次) …
plot
我使用seaborn
三列进行了分散['Category','Installs' and 'Gross Income']
,并使用数据集中的类别列进行了色调图。然而,在图例中,除了我想要出现的类别列之外,最后还有一个大自以为是的内容,显示了散点图中使用的列之一,安装。我想删除这个元素,但是通过搜索其他问题和文档seaborn
,matplotlib
我不知道如何继续。
这是我正在使用的代码片段:
fig, ax = pyplot.subplots(figsize=(12,6))
ax=sns.scatterplot( x="Installs", y="Gross Income", data=comp_income_inst, hue='Category',
palette=sns.color_palette("cubehelix",len(comp_income_inst)),
size='Installs', sizes=(100,5000), legend='brief', ax=ax)
ax.set(xscale="log", yscale="log")
ax.set(ylabel="Average Income")
ax.set_title("Distribution showing the Earnings of Apps in Various Categories\n", fontsize=18)
plt.rcParams["axes.labelsize"] = 15
# Move the legend to an empty part of the plot
plt.legend(loc='upper left', bbox_to_anchor=(-0.2, -0.06),fancybox=True, shadow=True, ncol=5)
#plt.legend(loc='upper left')
plt.show()
Run Code Online (Sandbox Code Playgroud)
我需要使用 matplotlib 中的 2 个特征绘制具有多个线性回归的 3D 图。我怎样才能做到这一点?
这是我的代码:
import pandas
from sklearn import linear_model
df = pandas.read_csv("cars.csv")
X = df[['Weight', 'Volume']]
y = df['CO2']
regr = linear_model.LinearRegression()
predictedCO2 = regr.predict([scaled[0]])
print(predictedCO2)
Run Code Online (Sandbox Code Playgroud) 我很困惑以下 python 代码如何使用b[:0] = a
. 不应该只是b = ['abc']
吗?
a='abc'
b=[]
b[:0]=a
print(b)
Run Code Online (Sandbox Code Playgroud)
输出:
b=[a,b,c]
Run Code Online (Sandbox Code Playgroud) 我想将字符串添加到现有列。例如,df['col1']
具有等值'1', '2', '3'
,我想'000'
在其左侧合并字符串,col1
因此我可以将列(新列或替换旧列都无所谓)'0001', '0002', '0003'
。
我以为我应该使用,df.withColumn('col1', '000'+df['col1'])
但由于pyspark dataframe是不可变的,因此当然不起作用?
这应该是一个简单的任务,但是我没有在网上找到任何东西。希望有人能给我一些帮助!
谢谢!
我列出了我的数据帧以删除未使用的数据帧。首先,我使用下面的函数来列出我从其中一篇文章中找到的数据帧
from pyspark.sql import DataFrame
def list_dataframes():
return [k for (k, v) in globals().items() if isinstance(v, DataFrame)]
Run Code Online (Sandbox Code Playgroud)
然后我尝试从列表中删除未使用的。我在下面使用的代码
df2.unpersist()
Run Code Online (Sandbox Code Playgroud)
当我再次列出时,df2 仍然存在。如何删除数据帧以在 pyspark 上获得一些内存?或者你有其他建议吗?谢谢你。
我正在做一些太阳系动力学模拟,并一直以这个项目为借口自学一些 python/pandas。生成的数据集有 1000 多条记录,其中包含每个相关天体的轨道倾角、偏心率等值。
我正在尝试使用熊猫来研究结果数据中 ~1000 个物体(“测试粒子”)的平均轨道倾角,作为半长轴的函数。
到目前为止,我一直在做的是:
1) 将数据读入数据帧
df = pd.read_csv('final.csv')
Run Code Online (Sandbox Code Playgroud)
2) 将数据限制在一系列半长轴值(粒子在模拟过程中“扩散”,但我想限制我的分析
cf = df[df.a.between(30,80)]
Run Code Online (Sandbox Code Playgroud)
3) 绘制给定数量的 bin 的倾角平均值
cf.groupby(pd.cut(cf.a, 80))['inc'].mean().plot()
Run Code Online (Sandbox Code Playgroud)
这创建了一个可接受的绘图,但在格式方面它有几个问题:除非它完全最大化以填满我的屏幕,否则沿 x 轴的数字会被挤压在一起并重叠。它们也不完全是我想看到的:它们显示了垃圾箱的最大值和最小值,我更喜欢直接滴答 5 秒或类似的东西。
我试过将值传递(x=None, xticks=None)
给plot()
上面的字符串部分,但这对结果图没有影响。我这样做的方式是否可以控制绘图/输出?
谢谢,
G
我将字符串转换a
为列表,我希望循环创建 \xe2\x80\x8dtabb = ['a', 'b', 'c', 'a']
a = aaabbbbcccaaa\n\ntaba = list(a)\ntabb = []\n\nfor i in taba:\n for j in range(len(tabb)):\n if not i[j] == i[j-1]:\n tabb.append(i[j])\n\nprint (tabb)\n
Run Code Online (Sandbox Code Playgroud)\n\n但显然我的解决方案gives tabb = []
您有更好、更简单的想法来让它发挥作用吗?
\n我遇到了一个关于按价值对我的特征进行排序的问题。我想看到我的图像,根据它们在 y 轴上的高度,条形变短。不幸的是,我的条形图看起来像这样,功能按字母顺序排序:
现在我正在运行以下代码:
unsorted_list = [(importance, feature) for feature, importance in
zip(features, importances)]
sorted_list = sorted(unsorted_list)
features_sorted = []
importance_sorted = []
for i in sorted_list:
features_sorted += [i[1]]
importance_sorted += [i[0]]
plt.title("Feature importance", fontsize=15)
plt.xlabel("Importance", fontsize=13)
plt.barh(features_sorted,importance_sorted, color="green", edgecolor='green')
# plt.savefig('importance_barh.png', dpi=100)
Run Code Online (Sandbox Code Playgroud)
这是通过那里的数据:
unsorted_list =
[('HR', 0.28804817462980353),
('BR', 0.04062328177704225),
('Posture', 0.09011618483921582),
('Activity', 0.0017821837085763366),
('PeakAccel', 0.002649111136700579),
('HRV', 0.13598729040097057),
('ROGState', 0.014534726412631642),
('ROGTime', 0.22986192060475388),
('VerticalMin', 0.016099772399198357),
('VerticalPeak', 0.012697214182994502),
('LateralMin', 0.029479112475744584),
('LateralPeak', 0.022745210003295983),
('SagittalMin', 0.08653071485979484),
('SagittalPeak', 0.028845102569277088)]
sorted_list =
[(0.0017821837085763366, 'Activity'),
(0.002649111136700579, …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从 python 速成课程中学习 python,但是这一项任务让我很难过,我在任何地方都找不到答案
任务是想想你最喜欢的交通方式,并制作一个列表,其中存储了几个例子 使用你的列表打印关于这些项目的一系列陈述
cars = ['rav4'], ['td5'], ['yaris'], ['land rover tdi']
print("I like the "+cars[0]+" ...")
Run Code Online (Sandbox Code Playgroud)
我假设这是因为我将字母和数字放在一起,但我不知道如何在没有错误的情况下产生结果,并且将不胜感激地收到帮助我得到的错误是
类型错误:只能将 str(不是“列表”)连接到 str**
我使用pip install zipfile,错误消失了:
找不到满足要求zipfile的版本(来自版本:)找不到与zipfile匹配的发行版
附加信息:来自/Users/xxxx/Library/Python/2.7/lib/python/site-packages/pip(python 2.7)的pip 18.1
我已经优化了一个现有xlsx
文件,并希望根据内容创建三个新文件。成功获得三个新输出,但无法将其写入新xlsx
文件。
我尝试安装,excelwriter
但这并没有解决我的问题。
import pandas as pd
import xlsxwriter
xl_file = pd.ExcelFile('C:\\Users\\python_codes\\myfile.xlsx')
dfs = pd.read_excel('myfile.xlsx', sheetname="Sheet1")
test = dfs.drop_duplicates(subset='DetectionId', keep='first', inplace=False)
dfs2 = test[test['list_set_id'] == 1]
print(dfs2)
writer = dfs2.ExcelWriter('newfile.xlxs', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()
Run Code Online (Sandbox Code Playgroud)
我想xlsx
用现有文件中过滤后的内容编写新文件。