草庐IT

df_housing

全部标签

python - 如何使用 lambda 函数更改 pandas df 中任意列的名称?

有什么方法可以使用lambda更改pandas数据框中的某些列名称,但不是全部?例如,假设此数据框包含名称为osx、centos、ubunto、windows的列。在此数据框中,我想用附加x的列名替换所有列名,因此在这种情况下,我可以通过以下方式重命名列名:df.rename(columns=lambdax:x+'x')但是,如果我想重命名ubunto以外的所有列名,我该怎么做呢?所以我要获取的是数据框,其名称为osxx、centosx、ubunto、windowsx。实际上,我的真实数据框有更多的列,所以我不喜欢使用通常的字典语法逐一写出,而是希望在可行的情况下依靠lambda函数。

python - 替换 pandas df 列名称中的字符串

我在pandas中有一个数据框,列名为“string_string”,我试图通过删除“_”和以下字符串来重命名它们。比如我想把“12527_AC9E5”改成“12527”。我尝试使用各种替换选项,并且可以替换字符串的特定部分(例如,我可以替换所有“_”),但是当我引入通配符时,我没有达到预期的结果。下面是一些我认为可行但行不通的方法。如果我删除它们起作用的通配符(即,它们替换_)。df=df.rename(columns=lambdax:x.sub('_.+',''))df.columns=df.columns.str.replace('_.+','')感谢任何帮助

Python df.to_excel() 在 excel 中将数字存储为文本。如何存储为值?

我正在通过pd.read_html从googlefinance抓取表格数据,然后通过df.to_excel()将该数据保存到excel,如下所示:dfs=pd.read_html('https://www.google.com/finance?q=NASDAQ%3AGOOGL&fstype=ii&ei=9YBMWIiaLo29e83Rr9AM',flavor='html5lib')xlWriter=pd.ExcelWriter(output.xlsx,engine='xlsxwriter')fori,dfinenumerate(dfs):df.to_excel(xlWriter,she

python - pandas.DF() 中的列是否单调递增?

我可以使用is_monotonic方法检查pandas.DataFrame()的索引是否单调递增。但是,我想检查其中一个列值是否严格增加value(float/integer)?In[13]:my_df=pd.DataFrame([1,2,3,5,7,6,9])In[14]:my_dfOut[14]:001122335475669In[15]:my_df.index.is_monotonicOut[15]:True 最佳答案 Pandas0.19添加了公共(public)Series.is_monotonicAPI(以前,这仅在未记

python - Pandas 面板花式索引 : How to return (index of) all DataFrames in Panel based on Boolean of multiple columns in each df

我有一个Pandas面板,其中包含许多具有相同行/列标签的DataFrame。我想用DataFrames制作一个新面板,满足基于几列的特定条件。这对于数据框和行来说很容易:假设我有一个df,zHe_compare。我可以获得合适的行:zHe_compare[(zHe_compare['zHe_calc']>100)&(zHe_compare['zHe_med']>100)|((zHe_obs_lo_2s但是我该怎么做(伪代码,简化的bool值):good_results_panel=results_panel[all_dataframes[sum('zHe_calc'min_num]]

python - 从 pandas.df_dummies 返回的最优雅的方式

来自具有数值和标称数据的数据框:>>>frompandasimportpd>>>d={'m':{0:'M1',1:'M2',2:'M7',3:'M1',4:'M2',5:'M1'},'qj':{0:'q23',1:'q4',2:'q9',3:'q23',4:'q23',5:'q9'},'Budget':{0:39,1:15,2:13,3:53,4:82,5:70}}>>>df=pd.DataFrame.from_dict(d)>>>dfBudgetmqj039M1q23115M2q4213M7q9353M1q23482M2q23570M1q9get_dummies将分类变量转换为虚拟/

python - 猴子修补 pandas 和 matplotlib 以删除 df.plot() 的刺

问题:我试图掌握monkeypatching的概念并同时制作一个功能来制作完美的时间序列图。如何在pandas中包含以下matplotlib功能pandas.DataFrame.plot()?ax.spines['top'].set_visible(False)ax.spines['right'].set_visible(False)ax.spines['bottom'].set_visible(False)ax.spines['left'].set_visible(False)问题末尾的完整代码详情:我认为df.plot()中的默认设置非常简洁,特别是如果您运行的JupyterNot

python - 基于列的整个 DataFrame 上的 df.unique()

我有一个DataFramedf填充了有重复ID的行和列:IndexIdType0a1A1a2A2b1B3b3B4a1A...当我使用时:uniqueId=df["Id"].unique()我得到一个唯一ID列表。但是,我如何在整个DataFrame上应用此过滤,以使其保留结构但删除重复项(基于“Id”)? 最佳答案 看来你需要DataFrame.drop_duplicates使用参数subset指定测试重复项的位置:#keepfirstduplicatevaluedf=df.drop_duplicates(subset=['Id']

python - 为什么 df.apply(tuple) 有效但 df.apply(list) 无效?

这是一个数据框:ABC062-51252210313-5284362我可以使用df.apply从原始df中检索一个基本上是列元组的列:out=df.apply(tuple,1)print(out)0(6,2,-5)1(2,5,2)2(10,3,1)3(-5,2,8)4(3,6,2)dtype:object但是如果我想要一个值列表而不是它们的元组,我就做不到,因为它没有给我预期的结果:out=df.apply(list,1)print(out)ABC062-51252210313-5284362相反,我需要做的是:out=pd.Series(df.values.tolist())prin

python - Pandas :对于 df 中的每一行,复制行 N 次,稍作更改

所以我有一个像这样的DataFrame:Nstart1108/01/20149:30:022108/01/201410:30:023208/01/201412:30:024308/01/20144:30:02我需要将每一行复制N次,每次都增加一个小时开始,如下所示:Nstart1108/01/20149:30:022108/01/201410:30:023208/01/201412:30:023208/01/201413:30:024308/01/20144:30:024308/01/20145:30:024308/01/20146:30:02我如何在pandas中做到这一点?