标签: data-analysis

如何将两个 Pandas Dataframe 列堆叠在一起?

是否有库函数或正确的方法将两个 Pandas 数据框列堆叠在一起?

例如将 4 列变成 2 列:

a1  b1  a2  b2
 1   2   3   4
 5   6   7   8
Run Code Online (Sandbox Code Playgroud)

c   d
1   2
5   6
3   4
7   8
Run Code Online (Sandbox Code Playgroud)

我阅读的大部分 Pandas Data Frames 文档只处理连接行和进行行操作,但我确信必须有一种方法来执行我所描述的操作,而且我确信它非常简单。

任何帮助都会很棒。

python data-analysis dataframe pandas

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

使用 matplotlib 在 2 y 轴上使用散点图

我试图在 matplotlib 上绘制 2 条不同的曲线,但其中一个图需要散点图,或者没有连接点的线。有没有办法做到这一点?现在,我的绘图代码是:

fig, ax1 = plt.subplots()

ax2 = ax1.twinx()
ax1.plot(epoch, list_of_gas, 'b')
ax2.plot(temp_times, temperatures, 'r')

ax1.set_ylabel('Pressure (torr)', color='b')
ax2.set_ylabel('Temperature (Celcius)', color='r')

ax1.set_title(folder + ' - ' + gas)
ax1.set_xlabel('time (seconds)')
ax1.set_xlim([0, 1000000])
ax2.set_ylim([0,425])
ax1.set_yscale('log')
ax1.set_ylim([ymin,ymax])

plt.show()
Run Code Online (Sandbox Code Playgroud)

但是,我想要ax1.scatter(epoch, list_of_gas, 'b'),但是您不能使用 2 轴散点图。有谁知道解决这个问题的方法?喜欢删除连接点的线?

python matplotlib data-analysis

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

在 Pandas 中高效编辑字符串并转换为浮点数

我有一个大数据集(appx 1GB,例如在字符串 '20000-30000' 中给出了一列薪水范围。我想删除连字符后的所有内容并转换为浮点数。但是这并不总是存在,所以我还需要在那里有一些条件来检查它是否在那里。

除了遍历整个列单独转换每个列之外,是否有一种快速的 Pandas 方法可以做到这一点?我觉得必须有,因为这似乎是一个常见问题,但是类似的问题并不能解决大型数据集的问题。

示例输入将是:

df = pd.DataFrame({'salary': ['200 - 300', '400', '400-500', '600', '-']})

df
Out: 
      salary
0  200 - 300
1        400
2    400-500
3        600
4          -
Run Code Online (Sandbox Code Playgroud)

对于这些值,首选输出是:

   salary
0     200
1     400
2     400
3     600
4       0
Run Code Online (Sandbox Code Playgroud)

0真的可以是任何填充物的价值,我只是选择0

python data-analysis python-3.x pandas

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

为什么执行 GroupBy 后会丢失数据?

所以这个数据集有 200 万条患者记录。我被要求将每个变量二分,这部分已经完成,但任何患者都可以有多个记录,所以我必须按患者对它们进行分组。当我执行此操作时,我会丢失数据;知道为什么吗?这并不是在每个领域都会发生:

在此输入图像描述

我添加示例数据帧的图像来执行 groupby('npaciente),然后您可以看到,对于 value_ counts 中的每一列,它不会在 complicacionescronicas 列中返回任何内容

在此输入图像描述

python data-analysis python-3.x pandas

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

ValueError:只能比较标记相同的系列对象

这是我的代码,无论我做什么,我都会不断收到错误并遵循所有与索引相关的解决方案,有人可以帮助我吗?

site = pd.read_csv('../data/survey_site.csv')
sampled = site.sample(n=1)

site = site.reset_index(drop=True)
sampled = sampled.reset_index(drop=True)

mask = site.mask(site['name'] == sampled['name'])
Run Code Online (Sandbox Code Playgroud)

python mask data-analysis dataframe pandas

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

如何根据pandas中的列合并两个数据框

我有两个数据框,

 df1=pd.DataFrame({"Req":["Req 1","Req 2","Req 3"],"Count":[1,2,1]})        
    Req     Count
0   Req 1   1
1   Req 2   2
2   Req 3   1
Run Code Online (Sandbox Code Playgroud)

df2=pd.DataFrame({"Req":["Req 1","Req 2"],"Count":[0,1]})

    Req    Count
0   Req 1   0
1   Req 2   1
Run Code Online (Sandbox Code Playgroud)

我正在尝试根据“Req”列合并这些 df

我想要的输出是,

    Req    total  from_1 from_2
    Req 1   1       1     0
    Req 2   3       2     1
    Req 3   1       1     0
Run Code Online (Sandbox Code Playgroud)

我试过了,pd.merge(df1, df2, on = "Req", )但没有给出我想要的输出,请帮忙,提前致谢!

python data-analysis dataframe pandas

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

如何在matplotlib pandas中将两个文件的两个条形图组合在一张图中

我有两个具有相同列但内容不同的数据框。我已经策划了dffinal data frame。现在我想dffinal_no在同一张图上绘制另一个数据框以进行比较。

例如,一个条形图blue colour,以及带有另一种颜色的相同条形图differentiating in y-axis

这是我绘制第一个数据框的代码的一部分。

dffinal = df[['6month','final-formula','numPatients6month']].drop_duplicates().sort_values(['6month'])

ax=dffinal.plot(kind='bar',x='6month', y='final-formula')
import matplotlib.pyplot as plt
ax2 = ax.twinx()
dffinal.plot(ax=ax2,x='6month', y='numPatients6month')
plt.show()
Run Code Online (Sandbox Code Playgroud)

现在想象我有另一个dffinal_no具有相同列的数据框,我如何在同一个图表中绘制它?

这是我绘制的第一个图表,我希望该图表上的另一个条形图使用另一种颜色。

在此处输入图片说明

所以@Mohamed Thasin ah 的答案在某种程度上是我想要的,除了正确的 y 轴不正确。

我想both data frame基于(6month, final-formula)但右边y-axis只是显示患者数量,作为用户的信息。

实际上,我DO NOT希望第一个 df 基于,final-fomula第二个 df 基于NumberPatients.

Update1 jast 作为参考它看起来像我的数据框

dffinal = df[['6month','final-formula','numPatients6month']].drop_duplicates().sort_values(['6month'])
nocidffinal = nocidf[['6month','final-formula','numPatients6month']].drop_duplicates().sort_values(['6month'])
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = …
Run Code Online (Sandbox Code Playgroud)

group-by matplotlib data-analysis dataframe pandas

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

将函数应用于列表 Python 中的所有项目

我正在尝试将函数应用于列表。该函数接受一个值并产生另一个值。

例如:

myCoolFunction(75)
Run Code Online (Sandbox Code Playgroud)

会产生一个新的价值

到目前为止,我正在使用这个:

x = 0
newValues = []

for value in my_list:

    x = x + 1
    newValues.append(myCoolFunction(value))
    print(x)
Run Code Online (Sandbox Code Playgroud)

我正在处理大约 125,000 个值,并且它的运行速度似乎不是很有效。

是否有更 Pythonic 的方式将函数应用于值?

python lambda data-analysis dataframe pandas

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

Pandas - 如何对格式化为字符串的周和年数字进行排序?

我有一个像这样的熊猫数据框,排序如下:

>>> weekly_count.sort_values(by='date_in_weeks', inplace=True)
>>> weekly_count.loc[:9,:]

  date_in_weeks count
0   1-2013      362
1   1-2014      378
2   1-2015      201
3   1-2016      294
4   1-2017      300
5   1-2018      297
6   10-2013     329
7   10-2014     314
8   10-2015     324
9   10-2016     322
Run Code Online (Sandbox Code Playgroud)

在上面的数据中,第一列,所有行都date_in_weeks只是“一年中的周数 - 年”。我现在想这样排序:

  date_in_weeks count
0   1-2013      362
6   10-2013     329
1   1-2014      378
7   10-2014     314
2   1-2015      201
8   10-2015     324
3   1-2016      294
9   10-2016     322
4   1-2017      300
5   1-2018      297
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

python sorting data-analysis dataframe pandas

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

加速 Pandas 迭代

我有包含 3 列的 DataFrame:CustomerId、Amount 和 Status(成功或失败)。DataFrame 没有以任何方式排序。一个 CustomerId 可以在 DataFrame 中重复多次。

我想使用以下逻辑在此 DataFrame 中引入新列:

df[totalamount]= 状态为成功的每个客户的金额总和。

我已经有一个正在运行的代码,但是 df.iterrows 需要太多时间。因此请您提供替代方法,如熊猫矢量化或 numpy 矢量化。

例如,我想从前三列创建 'totalamount' 列:

   CustomerID  Amount   Status  totalamount
0           1       5  Success          105 # since both transatctions were successful
1           2      10   Failed           80 # since one transaction was successful
2           3      50  Success           50
3           1     100  Success          105
4           2      80  Success           80
5           4      60   Failed            0
Run Code Online (Sandbox Code Playgroud)

data-analysis dataframe python-3.x pandas

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