小编Nat*_*oyd的帖子

如何合并Series和DataFrame

如果您来到这里寻找有关如何合并索引DataFrameSeries索引的信息,请查看此答案.

OP的初衷是询问如何将系列元素作为列分配给另一个DataFrame.如果您有兴趣知道答案,请查看EdChum 接受的答案.


我能想到的最好的是

df = pd.DataFrame({'a':[1, 2], 'b':[3, 4]})  # see EDIT below
s = pd.Series({'s1':5, 's2':6})

for name in s.index:
    df[name] = s[name]

   a  b  s1  s2
0  1  3   5   6
1  2  4   5   6
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议更好的语法/更快的方法?

我的尝试:

df.merge(s)
AttributeError: 'Series' object has no attribute 'columns'
Run Code Online (Sandbox Code Playgroud)

df.join(s)
ValueError: Other Series must have a name
Run Code Online (Sandbox Code Playgroud)

编辑前两个答案突出显示了我的问题的问题,所以请使用以下内容来构建df:

df = pd.DataFrame({'a':[np.nan, 2, 3], 'b':[4, 5, …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

65
推荐指数
3
解决办法
9万
查看次数

来自云托管 jupyter 的 pandas.read_clipboard?

我正在服务器上运行 JupyterHub 的 Data8 实例,pd.read_clipboard()但似乎不起作用。我在 google colab 中看到了同样的问题。

import pandas as pd
pd.read_clipboard()
Run Code Online (Sandbox Code Playgroud)

错误如下:

---------------------------------------------------------------------------
PyperclipException                        Traceback (most recent call last)
<ipython-input-2-8cbad928c47b> in <module>()
----> 1 pd.read_clipboard()

/opt/conda/lib/python3.6/site-packages/pandas/io/clipboards.py in read_clipboard(sep, **kwargs)
     29     from pandas.io.clipboard import clipboard_get
     30     from pandas.io.parsers import read_table
---> 31     text = clipboard_get()
     32 
     33     # try to decode (if needed on PY3)

/opt/conda/lib/python3.6/site-packages/pandas/io/clipboard/clipboards.py in __call__(self, *args, **kwargs)
    125 
    126         def __call__(self, *args, **kwargs):
--> 127             raise PyperclipException(EXCEPT_MSG)
    128 
    129         if PY2:

PyperclipException: 
    Pyperclip could …
Run Code Online (Sandbox Code Playgroud)

pandas jupyter jupyterhub jupyter-lab google-colaboratory

7
推荐指数
1
解决办法
1170
查看次数

在运行期间选择在ipython笔记本中运行哪些单元格的简单方法

我有一个ipython笔记本,它在数据处理程序中运行几个步骤,并在整个过程中将信息保存在文件中.这样,在开发我的代码时(主要是在一个单独的.py模块中),我可以跳过并运行各种步骤.我想设置它以便我可以Cell- > run all但只让它执行某些易于选择的选定步骤.例如,我想要定义我想在dict中运行的步骤,如下所示:

process = {
    'load files':False,
    'generate interactions list':False,
    'random walk':True,
    'dereference walk':True,
    'reduce walk':True,
    'generate output':True
}
Run Code Online (Sandbox Code Playgroud)

然后步骤将基于此dict运行.顺便说一下,每个步骤包括多个细胞.

我认为%macro不是我想要的,因为任何时候我改变任何东西或重新启动内核我都必须重新定义宏,改变单元格数.

那些线上是否有像魔术%skip%skipto魔法一样的东西?或者也许是一种干净的方式放在细胞的开头,if process[<current step>]: %dont_run_rest_of_cell

ipython ipython-notebook

6
推荐指数
4
解决办法
5680
查看次数

pd.dataframe.apply()创建多个新列

我有一堆文件要打开,读取第一行,将其解析为几个预期的信息,然后将文件名和这些数据作为行放在数据帧中.我的问题涉及以pandanic/pythonic方式构建数据帧的推荐语法(我已经想到的文件打开和解析).

对于一个愚蠢的例子,当您想要创建一个新列时,似乎建议执行以下操作:

df = pd.DataFrame(files, columns=['filename'])
df['first_letter'] = df.apply(lambda x: x['filename'][:1], axis=1)
Run Code Online (Sandbox Code Playgroud)

但我不能这样说:

df['first_letter'], df['second_letter'] = df.apply(lambda x: (x['filename'][:1], x['filename'][1:2]), axis=1)
Run Code Online (Sandbox Code Playgroud)

因为apply函数只创建一个包含元组的列.

请记住,我将放置一个函数来代替lambda函数,该函数将打开文件并读取和解析第一行.

pandas

3
推荐指数
1
解决办法
1795
查看次数