如果您来到这里寻找有关如何合并索引
DataFrame
和Series
索引的信息,请查看此答案.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) 我正在服务器上运行 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) 我有一个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
?
我有一堆文件要打开,读取第一行,将其解析为几个预期的信息,然后将文件名和这些数据作为行放在数据帧中.我的问题涉及以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函数,该函数将打开文件并读取和解析第一行.