相关疑难解决方法(0)

Pandas用逗号将列拆分成多列

我试图根据逗号/空格分隔将列拆分为多个列.

我的数据框目前看起来像

     KEYS                                                  1
0   FIT-4270                                          4000.0439
1   FIT-4269                                          4000.0420, 4000.0471
2   FIT-4268                                          4000.0419
3   FIT-4266                                          4000.0499
4   FIT-4265                                          4000.0490, 4000.0499, 4000.0500, 4000.0504,
Run Code Online (Sandbox Code Playgroud)

我想要

   KEYS                                                  1           2            3        4 
0   FIT-4270                                          4000.0439
1   FIT-4269                                          4000.0420  4000.0471
2   FIT-4268                                          4000.0419
3   FIT-4266                                          4000.0499
4   FIT-4265                                          4000.0490  4000.0499  4000.0500  4000.0504 
Run Code Online (Sandbox Code Playgroud)

我的代码目前删除了KEYS列,我不知道为什么.任何人都可以改进或帮助解决问题吗?

v = dfcleancsv[1]

#splits the columns by spaces into new columns but removes KEYS?

dfcleancsv = dfcleancsv[1].str.split(' ').apply(Series, 1)
Run Code Online (Sandbox Code Playgroud)

python csv split dataframe pandas

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

Pandas FutureWarning:未来版本中将弃用对字符的列式迭代

我有一个现有的解决方案,可以将一列的数据帧拆分为 2 列。

df['A'], df['B'] = df['AB'].str.split(' ', 1).str
Run Code Online (Sandbox Code Playgroud)

最近,我收到以下警告 FutureWarning: Columnar iteration over characters will be deprecated in future releases.

如何修复此警告?

我正在使用 python 3.7

python dataframe python-3.x pandas

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

分隔特定列并将其添加为CSV格式的列(Python3,CSV)

我有一个csv文件,其中有几列我首先用冒号(;)分隔.但是,一列由管道分隔 我想分界这个专栏并创建新专栏.

输入:

  Column 1    Column 2      Column 3
     1           2          3|4|5
     6           7          6|7|8
     10          11         12|13|14
Run Code Online (Sandbox Code Playgroud)

期望的输出:

  Column 1   Column 2      ID    Age  Height
     1          2          3      4    5 
     6          7          6      7    8
     10         11         12     13   14
Run Code Online (Sandbox Code Playgroud)

我的代码到目前为止第一次划分; 然后转换为DF(这是我想要的结束格式)

delimit = list(csv.reader(open('test.csv', 'rt'), delimiter=';'))
df = pd.DataFrame(delimit)
Run Code Online (Sandbox Code Playgroud)

python csv python-3.x pandas

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

Python 中的 Pandas 错误:列的长度必须与键的长度相同

我正在从几个网站上抓取一些数据,并使用 Pandas 对其进行修改。

在前几个数据块上它运行良好,但后来我收到此错误消息:

Traceback(most recent call last):
  File "data.py", line 394 in <module> df2[['STATUS_ID_1','STATUS_ID_2']] = df2['STATUS'].str.split(n=1, expand=True)
  File "/home/web/.local/lib/python2.7/site-packages/pandas/core/frame.py, line 2326, in __setitem__ self._setitem_array(key,value)
  File "/home/web/.local/lib/python2.7/site-packages/pandas/core/frame.py, line 2350, in _setitem_array
raise ValueError("Columns must be same length as key')  ValueError: Columns must be same length as key
Run Code Online (Sandbox Code Playgroud)

我的代码在这里:

df2 = pd.DataFrame(datatable,columns = cols)
df2['FLIGHT_ID_1'] = df2['FLIGHT'].str[:3]
df2['FLIGHT_ID_2'] = df2['FLIGHT'].str[3:].str.zfill(4)
df2[['STATUS_ID_1','STATUS_ID_2']] = df2['STATUS'].str.split(n=1, expand=True)
Run Code Online (Sandbox Code Playgroud)

EDIT-jezrael :我使用了你的代码,并从中打印出来:我希望通过这个我们可以找到问题出在哪里..因为当脚本遇到这个拆分问题时,它似乎是随机的..

                 0         1
2       Landed   8:33 AM
3       Landed   9:37 AM
4       Landed   9:10 AM
5 …
Run Code Online (Sandbox Code Playgroud)

python web-scraping pandas

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

在数据帧上迭代re.split()

我试图使用re.split()将pandas数据框中的单个变量拆分为另外两个变量.

我的数据如下:

   xg              
0.05+0.43
0.93+0.05
0.00
0.11+0.11
0.00
3.94-2.06
Run Code Online (Sandbox Code Playgroud)

我想创造

 e      a
0.05  0.43
0.93  0.05
0.00  
0.11  0.11
0.00
3.94  2.06
Run Code Online (Sandbox Code Playgroud)

我可以使用for循环和索引来完成此操作.

for i in range(len(df)):
    if df['xg'].str.len()[i] < 5:
        df['e'][i] = df['xg'][i]
    else:
        df['e'][i], df['a'][i] = re.split("[\+ \-]", df['xg'][i])
Run Code Online (Sandbox Code Playgroud)

然而,这很慢,我不相信这是一个很好的方法,我正在努力提高我的代码/ python理解.

我尝试使用np.where编写它,或使用列表理解或应用lambda进行了各种尝试,但我不能让它运行得太多.我认为我遇到的所有问题都是因为我试图将函数应用于整个系列而不是位置值.

如果有人知道一个比我丑陋的循环更好的方法,我会非常感兴趣.

python regex loops python-3.x pandas

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

Pandas基于拆分另一列添加新列

我有一个像下面这样的pandas数据帧:

A              B
US,65,AMAZON   2016
US,65,EBAY     2016
Run Code Online (Sandbox Code Playgroud)

我的目标是看起来像这样:

A              B      country    code    com
US.65.AMAZON   2016   US         65      AMAZON
US.65.AMAZON   2016   US         65      EBAY
Run Code Online (Sandbox Code Playgroud)

我知道在这里这里之前已经问过这个问题,但它们都不适合我.我试过了:

df['country','code','com'] = df.Field.str.split('.')
Run Code Online (Sandbox Code Playgroud)

df2 = pd.DataFrame(df.Field.str.split('.').tolist(),columns = ['country','code','com','A','B'])
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?任何帮助深表感谢.

python split multiple-columns dataframe pandas

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

将大熊猫分为两部分

还有其他类似的问题,但不同之处在于我的数据框架已经有很多列,其中只有一列需要拆分.

我有一个大型数据帧(数百列,数百万行).当在字符串中找到字符("|")时,我想拆分其中一列.

所有值只有一个"|".

对于固定长度,我会这样做:df ['StateInitial'] = df ['state'].str [:2]

我希望我可以用string.index("|")替换2,但是如何调用字符串呢?

python dataframe pandas

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

Pandas数据帧,按最后一列的最后一列拆分数据,但保留其他列

对熊猫来说很新,所以对解决方案的任何解释都表示赞赏.

我有一个数据帧,如

    Company                             Zip State City
1   *CBRE                               San Diego, CA 92101
4   1908 Brands                         Boulder, CO 80301
7   1st Infantry Division Headquarters  Fort Riley, KS
10  21st Century Healthcare, Inc.       Tempe 85282
15  AAA                                 Jefferson City, MO 65101-9564
Run Code Online (Sandbox Code Playgroud)

我想将我的数据中的Zip State city列拆分为3个不同的列.使用这篇文章Pandas DataFrame的答案,如何将一个列拆分为两个如果我没有第一列,我可以完成此任务.编写正则表达式来捕获所有公司只会导致我捕获数据中的所有内容.

我也试过了

foo = lambda x: pandas.Series([i for i in reversed(x.split())])
data_pretty = data['Zip State City'].apply(foo)
Run Code Online (Sandbox Code Playgroud)

但这导致我松开公司列并将多个单词的城市名称拆分为不同的列.

如何在保留公司列数据的同时拆分我的最后一列?

python dataframe pandas

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

Pandas DataFrame - 将系列字符串拆分为多列

我的问题更多的是关于前一篇文章中描述的方法/语法,它解决了实现将字符串值拆分为列表并将每个列表项分配给新列的相同目标的不同方法.这是帖子: Pandas DataFrame,我如何将一个列分成两个

DF:

                          GDP
Date                        
Mar 31, 2017  19.03 trillion
Dec 31, 2016  18.87 trillion
Run Code Online (Sandbox Code Playgroud)

脚本1 +输出:

>>> df['GDP'], df['Units'] = df['GDP'].str.split(' ', 1).str
>>> print(df)

                GDP     Units
Date                         
Mar 31, 2017  19.03  trillion
Dec 31, 2016  18.87  trillion
Run Code Online (Sandbox Code Playgroud)

脚本2 +输出:

>>> df[['GDP', 'Units']] = df['GDP'].str.split(' ', 1, expand=True)
>>> print(df)

                GDP     Units
Date                         
Mar 31, 2017  19.03  trillion
Dec 31, 2016  18.87  trillion
Run Code Online (Sandbox Code Playgroud)

脚本3 +输出:

>>> df['GDP'], df['Units'] = df['GDP'].str.split(' ', 1, expand=True)
>>> print(df)

              GDP  Units
Date …
Run Code Online (Sandbox Code Playgroud)

python split dataframe pandas

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

根据“键=值”项将熊猫列拆分为多列

我有一个数据框,其中一列包含“键=值”格式的多个信息。该列中可以出现近一百种不同的“key=value”,但为了简单起见,我将仅使用 4 ( _browser, _status, _city, tag)

id  name   properties
0   A      {_browser=Chrome, _status=TRUE, _city=Paris}
1   B      {_browser=null, _status=TRUE, _city=London, tag=XYZ}
2   C      {_status=FALSE, tag=ABC}
Run Code Online (Sandbox Code Playgroud)

如何将这种拆分属性字符串列转换为多列?

预期的输出是:

id  name   _browser    _status    _city    tag
0   A      Chrome      TRUE       Paris       
1   B      null        TRUE       London   XYZ
2   C                  FALSE               ABC
Run Code Online (Sandbox Code Playgroud)

注意:此值也可以包含空格(例如_city=Rio de Janeiro

python dataframe pandas

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

通过pandas按特殊字符和组拆分列的值

我有df这样的,

Owner   Messages
AAA     (YY) Duplicates
AAA     Missing Number; (VV) Corrected Value; (YY) Duplicates
AAA     (YY) Duplicates
BBB     (YY) Duplicates
BBB     Missing Measure; Missing Number
Run Code Online (Sandbox Code Playgroud)

当我做这样的正常时groupby,

df_grouped = df.groupby([' Owner', 'Messages']).size().reset_index(name='count')
df_grouped
Run Code Online (Sandbox Code Playgroud)

我按预期得到了这个,

    Owner  Messages                                               count
0   AAA   (YY) Duplicates                                           2
1   AAA   Missing Number; (VV) Corrected Value; (YY) Duplicates     1
2   BBB   (YY) Duplicates                                           1
3   BBB   Missing Measure; Missing Number                           1
Run Code Online (Sandbox Code Playgroud)

但是,我需要一些东西(所需的输出),就像这个;内部Messages列拆分一样.

   Owner    Messages             count
0   AAA    (YY) Duplicates       3 …
Run Code Online (Sandbox Code Playgroud)

split group-by python-3.x pandas

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

如何使用 Pandas 在 Python 中将两个字符串拆分为不同的列?

我是新手,我需要将包含两个字符串的列拆分为 2 列,如下所示:

初始数据帧:

    Full String
0   Orange Juice
1   Pink Bird
2   Blue Ball
3   Green Tea
4   Yellow Sun
Run Code Online (Sandbox Code Playgroud)

最终数据框:

    First String    Second String
0   Orange           Juice
1   Pink             Bird
2   Blue             Ball
3   Green            Tea
4   Yellow           Sun
Run Code Online (Sandbox Code Playgroud)

我试过这个但不起作用:

df['First String'] , df['Second String'] = df['Full String'].str.split()
Run Code Online (Sandbox Code Playgroud)

和这个:

df['First String', 'Second String'] = df['Full String'].str.split()
Run Code Online (Sandbox Code Playgroud)

如何使它工作?谢谢!!!

python dataframe pandas

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