小编SBa*_*Bad的帖子

用一个值替换 Pandas 系列中的多个子字符串

全部,

要替换某一列中的一个字符串,我已经完成了此操作,并且效果很好:

dataUS['sec_type'].str.strip().str.replace("LOCAL","CORP")
Run Code Online (Sandbox Code Playgroud)

我现在想用一个字符串替换多个字符串说替换["LOCAL", "FOREIGN", "HELLO"]"CORP"

怎样才能让它发挥作用?下面的代码不起作用

dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
Run Code Online (Sandbox Code Playgroud)

python string series python-2.7 pandas

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

df ['X'].unique() 和 TypeError:不可散列类型:'numpy.ndarray'

全部,

我的数据框中有一列,如下所示:

allHoldingsFund['BrokerMixed']
Out[419]: 
78         ML
81       CITI
92         ML
173      CITI
235        ML
262        ML
264        ML
25617      GS
25621    CITI
25644    CITI
25723      GS
25778    CITI
25786    CITI
25793      GS
25797    CITI
Name: BrokerMixed, Length: 2554, dtype: object
Run Code Online (Sandbox Code Playgroud)

虽然列是一个对象。我无法按该列进行分组,甚至无法提取该列的唯一值。例如当我这样做时:

allHoldingsFund['BrokerMixed'].unique()
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

     uniques = table.unique(values)
  File "pandas/_libs/hashtable_class_helper.pxi", line 1340, in pandas._libs.hashtable.PyObjectHashTable.unique
TypeError: unhashable type: 'numpy.ndarray'
Run Code Online (Sandbox Code Playgroud)

当我进行分组时,我也遇到错误。

欢迎任何帮助。谢谢

python group-by pandas

7
推荐指数
3
解决办法
2万
查看次数

Pycharm 错误:进程已完成,退出代码为 132(被信号 4:SIGILL 中断)

全部,

我在 pycharm 中一直有这个错误。

Backend WebAgg is interactive backend. Turning interactive mode on.
Process finished with exit code 132 (interrupted by signal 4: SIGILL)
Run Code Online (Sandbox Code Playgroud)

请问我如何解决这个问题?

谢谢

python pycharm

6
推荐指数
0
解决办法
3070
查看次数

从数据框中删除顶行

我有一个看起来像这样的数据框:

         level_0              level_1 Repo Averages for 27 Jul 2018
0  Business Date           Instrument                           Ccy
1     27/07/2018  GC_AUSTRIA_SUB_10YR                           EUR
2     27/07/2018    R_RAGB_1.15_10/18                           EUR
3     27/07/2018    R_RAGB_4.35_03/19                           EUR
4     27/07/2018    R_RAGB_1.95_06/19                           EUR
Run Code Online (Sandbox Code Playgroud)

我试图摆脱顶行,只保留

   Business Date           Instrument         Ccy
0     27/07/2018  GC_AUSTRIA_SUB_10YR         EUR
1     27/07/2018    R_RAGB_1.15_10/18         EUR
2     27/07/2018    R_RAGB_4.35_03/19         EUR
3     27/07/2018    R_RAGB_1.95_06/19         EUR
Run Code Online (Sandbox Code Playgroud)

我尝试过df.columns.droplevel(0) 但没有成功任何帮助都非常受欢迎

python dataframe pandas drop

6
推荐指数
3
解决办法
2万
查看次数

使用python打开.mat(matlab数据)

我尝试从 Python 导入并读取 .mat 文件。我尝试过两种方法但没有成功。

方法一(Python):

import scipy.io as sio    
mat = sio.loadmat('path/tmpPBworkspace.mat')
Run Code Online (Sandbox Code Playgroud)

我收到类似以下内容的消息:

{'None': MatlabOpaque([ (b'rateQualityOutTrim', b'MCOS', b'dataset', array([[3707764736],
        [         2],
        [         1],
        [         1],
        [         1],
        [         1]], dtype=uint32))],
              dtype=[('s0', 'O'), ('s1', 'O'), ('s2', 'O'), ('arr', 'O')]),
 '__function_workspace__': array([[ 0,  1, 73, ...,  0,  0,  0]], dtype=uint8),
 '__globals__': [],
 '__header__': b'MATLAB 5.0 MAT-file, Platform: GLNXA64, Created on: Thu May 10 07:11:52 2018',
 '__version__': '1.0'}
Run Code Online (Sandbox Code Playgroud)

我不确定那里出了什么问题?我希望看到一个数据框。另外要补充的是,在方法 1 中,我已将 .mat 保存为与 SciPy 兼容的版本。

在Matlab中:

{'None': MatlabOpaque([ (b'rateQualityOutTrim', b'MCOS', b'dataset', array([[3707764736], …
Run Code Online (Sandbox Code Playgroud)

numpy scipy dataframe python-3.x pandas

5
推荐指数
1
解决办法
2万
查看次数

求和与分组

我有一个如下所示的数据框:

全部控股基金

      BrokerBestRate  notional_current  DistanceBestRate
0           CITI          7.859426e+05          0.023194
1           WFPBS         3.609674e+06         -0.023041
2           WFPBS         1.488828e+06         -0.023041
3           JPM           3.484168e+05         -0.106632
4           CITI          6.088499e+05          0.023194
5           WFPBS         8.665558e+06         -0.023041
6           WFPBS         4.219563e+05         -0.023041
Run Code Online (Sandbox Code Playgroud)

我正在尝试一次进行求和积和分组(不创建额外的求和积列)

我试过这行代码

allHoldingsFund.groupby(['BrokerBestRate'])['notional_current']*['DistanceBestRate'].sum() 
Run Code Online (Sandbox Code Playgroud)

我怎样才能做一个求和积,然后使用 group by 聚合它?

所需输出

BrokerBestRate      product of (notional_current  and DistanceBestRate)
   CITI              654654645665466
   JPM               453454534545367
  WFPBS              345345345345435
Run Code Online (Sandbox Code Playgroud)

非常感谢

python group-by sum python-3.x pandas

5
推荐指数
2
解决办法
1万
查看次数

将 if 条件与 isnan 语句结合起来

我正在尝试使用 if 语句并检查行值是否为 NaN 。事实证明比我想象的更难

这是一个例子:

df = pd.DataFrame({'key': ['A', 'B', 'C', 'A', 'B', 'C'],
                   'data1': range(6),
                   'data2': ['A1', 'B1', 'NaN', 'A1', 'B1','NaN']},
                   columns = ['key', 'data1', 'data2'])

def set_perf(row):
    if ("C" in row['key']) & (row['data2']=="NaN"):
        return row['data1']    
    else:        
        return 1

df['NewColumn'] = df.apply(set_perf, axis=1)  
Run Code Online (Sandbox Code Playgroud)

输出是

  key  data1 data2  NewColumn
0   A      0    A1          1
1   B      1    B1          1
2   C      2   NaN          2
3   A      3    A1          1
4   B      4    B1          1
5   C      5   NaN          5 …
Run Code Online (Sandbox Code Playgroud)

python if-statement python-2.7 pandas

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

选择列中每行的前 N ​​个元素

我希望选择 a 列和 b 列中每行的前两个元素。

这是一个例子

df = pd.DataFrame({'a': ['A123', 'A567','A100'], 'b': ['A156', 'A266666','A35555']})

>>> df
      a        b
0  A123     A156
1  A567  A266666
2  A100   A35555
Run Code Online (Sandbox Code Playgroud)

期望的输出

>>> df
      a      b
0     A1     A1
1     A5     A2
2     A1     A3
Run Code Online (Sandbox Code Playgroud)

我一直在尝试使用df.loc但没有成功。

python pandas

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

plt.show() 在 pycharm 中不起作用

我将 python 升级到 python 3.5 后正在使用 pycharm。

我重新运行了已有的标准代码,但plt.show() 示例有问题:

import matplotlib
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()
Run Code Online (Sandbox Code Playgroud)

的建议使DavidG事情进展顺利。但这一次当我这么做的时候

       import matplotlib
        matplotlib.use('TkAgg')
        import matplotlib.pyplot as plt
        plt.plot([1,2,3,4])
        plt.show()
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息

/apps/qtrinst/install/python/anaconda/envs/sx_anaconda/lib/python3.5/site-packages/matplotlib/__init__.py:1401: UserWarning:  This call to matplotlib.use() has no effect
because the backend has already been chosen;
matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.
Run Code Online (Sandbox Code Playgroud)

之前没有收到此错误 - 不确定那里发生了什么。

matplotlib python-3.x pandas

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

计算两个日期之间的差异时如何删除“天”?

使用以下方法计算两个日期之间的差异时:

df_test['Difference'] = (df_test['First_Date'] - df_test['Second Date'])
Run Code Online (Sandbox Code Playgroud)

我得到第三列“x 天”。

如何将“x Days”转换为int“x”。例如,“50 天”变成“50 天”?

之前的帖子中有人建议使用:

df_test['Difference'] = (df_test['First_Date'] - df_test['Second Date']).dt.days
Run Code Online (Sandbox Code Playgroud)

但使用它我得到一个类型的错误:

“‘系列’对象没有属性‘dt’”

请问我该如何解决这个问题?

python python-2.7 python-3.x pandas

2
推荐指数
1
解决办法
9354
查看次数

向数据框添加零列

我有一个奇怪的问题,我无法解决。我有一个看起来像这样的数据框子集

在此处输入图片说明

在数据框中,我使用以下代码添加“零”列:

subset['IRNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
subset['IPNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
Run Code Online (Sandbox Code Playgroud)

我得到类似的结果

在此处输入图片说明

现在,当我执行与另一个数据框相似的操作时,我得到的零列包含NaN和零行,如下所示。这真是奇怪。

subset['IRNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
    subset['IPNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我不明白为什么有时我会得到零,而另一些我会得到NaN或NaN和零的混合。如果可以的话请帮忙

谢谢

dataframe python-3.x pandas

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