小编Hel*_*rth的帖子

检查dataframe列中的所有值是否都是相同的Pandas

我想快速方便地检查counts数据框中所有列的值是否相同:

在:

import pandas as pd

d = {'names': ['Jim', 'Ted', 'Mal', 'Ted'], 'counts': [3, 4, 3, 3]}
pd.DataFrame(data=d)
Run Code Online (Sandbox Code Playgroud)

出:

  names  counts
0   Jim       3
1   Ted       4
2   Mal       3
3   Ted       3
Run Code Online (Sandbox Code Playgroud)

我想只是一个简单的条件if all counts = same value,然后print('True')

有快速的方法吗?

python dataframe python-3.x pandas

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

用熊猫编写单个CSV标头

我正在将数据解析为列表,并使用熊猫进行构图并写入CSV文件。首先,我的数据被放入一个集合中,其中invnamedate都是具有大量条目的列表。然后,我使用concat将通过解析的数据集的每次迭代连接成CSV文件,如下所示:

counter = True
data = {'Invention': inv, 'Inventor': name, 'Date': date}

if counter is True:
  df = pd.DataFrame(data)
  df = df[['Invetion', 'Inventor', 'Date']]

else:
  df = pd.concat([df, pd.DataFrame(data)])
  df = df[['Invention', 'Inventor', 'Date']]

  with open('./new.csv', 'a', encoding = utf-8) as f:
    if counter is True:
      df.to_csv(f, index = False, header = True)
    else:
      df.to_csv(f, index = False, header = False)

counter = False
Run Code Online (Sandbox Code Playgroud)

counter = True语句位于我要解析的所有数据的迭代循环之外,因此不会每次都覆盖。

因此,这意味着它仅在我的数据中运行一次即可获取第一个 …

python csv header dataframe pandas

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

在Python中从列表中并排加入单词

有一堆从.txt文件转换而来的列表,这些列表已被读作字符串集合,如下所示:

['New', 'Jersey', '1', '0', '1', '999']
['West', 'North', 'Central', '1', '0', '100', '90']
Run Code Online (Sandbox Code Playgroud)

这些列表有不同数量的并排词(第一个有2个,第二个有3个,等等.)

我想输出一个新的列表(然后进入一个编译的数据帧),它将并排的单词连接在一起,如:

['New Jersey', '1', '0', '1', '999']
['West North Central', '1', '0', '100', '90']
Run Code Online (Sandbox Code Playgroud)

这将使新列表(和数据帧)具有相同的长度.

只是append(line.split())为每个字符串添加一个新列表很容易,但无法找出if-statement和.join()连接所有单词并分别附加每个数字.

python string list dataframe python-3.x

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

从 pandas Dataframe 中的混合数据类型列中删除破折号字符串

我有一个数据框,其中可能包含与数值混合的对象。

我的目标是将每个值更改为简单整数,但是其中一些值介于-数字之间。

一个最小的工作示例如下所示:

import pandas as pd

d = {'API':[float(4433), float(3344), 6666, '6-9-11', '8-0-11', 9990]}
df = pd.DataFrame(d)
Run Code Online (Sandbox Code Playgroud)

我尝试:

df['API'] = df['API'].str.replace('-','')
Run Code Online (Sandbox Code Playgroud)

但这给我留下了nan数字类型,因为它只在整个框架中搜索字符串。

输出是:

API

nan
nan
nan
6911
8011
nan
Run Code Online (Sandbox Code Playgroud)

我想要一个输出:

API

4433
3344
6666
6911
8011
9990
Run Code Online (Sandbox Code Playgroud)

所有类型都在的地方int

有没有一种简单的方法可以只处理系列中的对象类型,但保持实际的数字不变?我在大型数据集(300,000 多行)上使用这种技术,因此类似lambda或 的东西series operations比循环搜索更受青睐。

python types numeric python-3.x pandas

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

在Python中按对减少数据框中的重复值

我有一个数据框,看起来像:

df_pairs

128.437     128.437     121.639  5100.9     5029.08   5029.08   4888.81  4888.81    0         0         0    0   0   0
129.588     129.588     122.79   5102.05    5030.24   5030.24   4959.55  4959.55    4889.96   4889.96   0    0   0   0
Run Code Online (Sandbox Code Playgroud)

我想在每一行中保留所有唯一值,并将每个重复值减少到成对值中只有1个。

输出为:

df_unique

128.437     121.639  5100.9   5029.08    4888.81    0          0   0
129.588     122.79   5102.05  5030.24    4959.55    4889.96    0   0
Run Code Online (Sandbox Code Playgroud)

因此,如您现在所见,每行有一个对/ 2,如果该对相等。

伪代码将类似于:

df_unique = pd.DataFrame(columns=df_pairs.columns)

for columns in range(len(df_pairs.columns)):

     if df_pairs.iloc[row_element] == df_pairs.iloc[row_element+1]:

             unique_element = df_pairs.iloc[row_element]
             df_unique[new_row_element] = unique_element
Run Code Online (Sandbox Code Playgroud)

有没有什么方法可以快速执行此操作,而无需逐对逐行进行迭代?

我不能简单地删除所有重复项,df.drop_duplicates()因为事实是,行中可能存在重复的值,这些重复值不一定是邻居对,而且如果要在唯一对中保留0,那么我会保留它们。

python duplicates dataframe python-3.x pandas

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

在 Python 中绘制特定列值

我有每年每月(1-12)按小时(0-23)重复的值,例如:

Year    Month     HOUR  NAME            RATE
2010    1          0    Big              2  
2010    1          0    Channelview      4
2010    1          0    Cottonwood       12
2010    1          1    Big              4  
2010    1          1    Channelview      9
2010    1          1    Cottonwood       11
.
.
.
2010    2          0    Big              6  
2010    2          0    Channelview      10
2010    2          0    Cottonwood       17
.
.
2013    1          0    Big              4  
2013    1          0    Channelview      9
2013    1          0    Cottonwood       11
Run Code Online (Sandbox Code Playgroud)

我想按小时(x 轴)绘制一年中每个月的名称的费率数据(y 轴)(持续 7 年)。有没有办法通过.groupby.loc不需要根据年份和月份创建额外的数据框来做到这一点?

python plot dataframe python-3.x pandas

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

标签 统计

python ×6

dataframe ×5

pandas ×5

python-3.x ×5

csv ×1

duplicates ×1

header ×1

list ×1

numeric ×1

plot ×1

string ×1

types ×1