我有一个 Pandas 数据框,看起来像这样:
text = ["abcd", "efgh", "ijkl", "mnop", "qrst", "uvwx", "yz"]
labels = ["label_1, label_2",
"label_1, label_3, label_2",
"label_2, label_4",
"label_1, label_2, label_5",
"label_2, label_3",
"label_3, label_5, label_1, label_2",
"label_1, label_3"]
df = pd.DataFrame(dict(text=text, labels=labels))
df
text labels
0 abcd label_1, label_2
1 efgh label_1, label_3, label_2
2 ijkl label_2, label_4
3 mnop label_1, label_2, label_5
4 qrst label_2, label_3
5 uvwx label_3, label_5, label_1, label_2
6 yz label_1, label_3
Run Code Online (Sandbox Code Playgroud)
我想将数据框格式化为如下所示:
text label_1 label_2 label_3 label_4 label_5
abcd 1.0 …Run Code Online (Sandbox Code Playgroud) 我有一个 pandas 数据集,其中有一列以逗号分隔的字符串,例如1,2,3,10:
data = [
{ 'id': 1, 'score': 9, 'topics': '11,22,30' },
{ 'id': 2, 'score': 7, 'topics': '11,18,30' },
{ 'id': 3, 'score': 6, 'topics': '1,12,30' },
{ 'id': 4, 'score': 4, 'topics': '1,18,30' }
]
df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)
我想获得 中每个值的计数和平均分数topics。所以:
topic_id,count,mean
1,2,5
11,2,8
12,1,6
Run Code Online (Sandbox Code Playgroud)
等等。我怎样才能做到这一点?
我已经做到了:
df['topic_ids'] = df.topics.str.split()
Run Code Online (Sandbox Code Playgroud)
但现在我想我想爆炸topic_ids,所以整个值集中的每个唯一值都有一列......?
我有几个字典设置如下:
Dict1 = {'Orange': ['1', '2', '3', '4']}
Dict2 = {'Red': ['3', '4', '5']}
Run Code Online (Sandbox Code Playgroud)
我希望输出是一个组合数据帧:
| Type | Value |
|--------------|
|Orange| 1 |
|Orange| 2 |
|Orange| 3 |
|Orange| 4 |
| Red | 3 |
| Red | 4 |
| Red | 5 |
Run Code Online (Sandbox Code Playgroud)
我尝试将所有内容拆分,但我只在此数据帧中获得Dict2.
mydicts = [Dict1, Dict2]
for x in mydicts:
for k, v in x.items():
df = pd.DataFrame(v)
df['Type'] = k
Run Code Online (Sandbox Code Playgroud) 我试图计算pandas DataFrame列中元素的频率.
一些玩具数据:
d = pd.DataFrame({'letters':[['a', 'b', 'c'], np.nan, ['a', 'e', 'd', 'c'], ['a', 'e', 'c']]})
Run Code Online (Sandbox Code Playgroud)
我能想到的是遍历行并向字典添加值:
letter_count = {}
for i in range(len(d)):
if d.iloc[i, ]['letters'] is np.nan:
continue
else:
for letter in d.iloc[i, ]['letters']:
letter_count[letter] = letter_count.get(letter, 0) + 1
Run Code Online (Sandbox Code Playgroud)
这对我有用,除非它的数据集很大,因此速度不是很快.我假设通过避免明确的for循环可能有所帮助,但我无法想出更多'pandasian'方法来做到这一点.
任何帮助表示赞赏.
我有一个像这样的熊猫数据框:
Text start end entity value
I love apple 7 11 fruit apple
I ate potato 6 11 vegetable potato
Run Code Online (Sandbox Code Playgroud)
我试图使用 for 循环它运行缓慢,我认为这不是我们应该对熊猫做的事情。
我想基于此创建另一个熊猫数据框,例如:
Sentence# Word Tag
1 I Object
1 love Object
1 apple fruit
2 I Object
2 ate Object
2 potato vegetable
Run Code Online (Sandbox Code Playgroud)
将文本列拆分为单词和句子编号。除实体词外,其他词将被标记为对象。
我有一个如下所示的数据框:
>>> df1
a b
0 [1, 2, 3] 10
1 [4, 5, 6] 20
2 [7, 8] 30
Run Code Online (Sandbox Code Playgroud)
另一个像:
>>> df2
a
0 1
1 2
2 3
3 4
4 5
Run Code Online (Sandbox Code Playgroud)
如果 df2 的列“a”值位于 df1 的“a”中,我需要从 df1 的“b”列在 df2 中创建列“c”。在 df1 中,列“a”的每个元组都是一个列表。
我尝试从以下网址实现,但到目前为止什么也没得到: https://medium.com/@Imaadmkhan1/using-pandas-to-create-a-conditional-column-by-selecting-multiple-columns-in-两个不同-b50886fabb7d
期望结果是
>>> df2
a c
0 1 10
1 2 10
2 3 10
3 4 20
4 5 20
Run Code Online (Sandbox Code Playgroud) 我有一个pandas数据帧,其中一列包含不同长度的列表.在pandas中爆炸列表的解决方案都假设要爆炸的列表都具有相同的长度.
这是我的df:
Dep Exp Fl-No Shared Codes
0 20:58 20:55 LX 736 [No shared codes]
1 21:23 20:55 LX 818 [Dummy, LH 5809]
2 21:27 21:00 JU 375 [No shared codes]
4 21:28 21:00 LX 770 [Dummy, SN 5102]
7 21:31 21:10 LX 1842 [Dummy, LH 5880, TP 8184, A3 1985]
Run Code Online (Sandbox Code Playgroud)
这就是我要找的东西:
Dep Exp Fl-No Shared Codes
0 20:58 20:55 LX 736 No shared codes
1 21:23 20:55 LX 818 Dummy
1 21:23 20:55 LX 818 LH 5809
2 21:27 …Run Code Online (Sandbox Code Playgroud) 我有一本字典如下:
{'header_1': ['body_1', 'body_3', 'body_2'],
'header_2': ['body_6', 'body_4', 'body_5'],
'header_4': ['body_7', 'body_8'],
'header_3': ['body_9'],
'header_9': ['body_10'],
'header_10': []}
Run Code Online (Sandbox Code Playgroud)
我想提出一个这样的数据帧:
+----+----------+--------+
| ID | header | body |
+----+----------+--------+
| 1 | header_1 | body_1 |
+----+----------+--------+
| 2 | header_1 | body_3 |
+----+----------+--------+
| 3 | header_1 | body_2 |
+----+----------+--------+
| 4 | header_2 | body_6 |
+----+----------+--------+
| 5 | header_2 | body_4 |
+----+----------+--------+
| 6 | header_2 | body_5 |
+----+----------+--------+
| 7 | header_4 …Run Code Online (Sandbox Code Playgroud) 我正在尝试将嵌套的 json 转换为 csv 文件,但我正在努力解决文件结构所需的逻辑:它是一个包含 2 个对象的 json,我只想将其中一个对象转换为 csv,这是带嵌套的列表。
我在这篇博文中发现了非常有用的“扁平化”json 信息。我基本上已经根据我的问题调整了它,但它仍然对我不起作用。
我的 json 文件如下所示:
{
"tickets":[
{
"Name": "Liam",
"Location": {
"City": "Los Angeles",
"State": "CA"
},
"hobbies": [
"Piano",
"Sports"
],
"year" : 1985,
"teamId" : "ATL",
"playerId" : "barkele01",
"salary" : 870000
},
{
"Name": "John",
"Location": {
"City": "Los Angeles",
"State": "CA"
},
"hobbies": [
"Music",
"Running"
],
"year" : 1985,
"teamId" : "ATL",
"playerId" : "bedrost01",
"salary" : 550000
}
],
"count": 2
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的代码如下所示: …
我有一本看起来像这样的字典:
dic = {'a': {'b': [1,2], 'c': [3,4]}, 'A': {'B': [10,20], 'C': [30, 40]}}
Run Code Online (Sandbox Code Playgroud)
我想获得一个带有 3 列的 2 暗数据框,如下所示:
'a' 'b' 1
'a' 'b' 2
'a' 'c' 3
'a' 'c' 4
'A' 'B' 10
'A' 'B' 20
'A' 'C' 30
'A' 'C' 40
Run Code Online (Sandbox Code Playgroud) 我有一个数据框,其中包含多列包含列表,每行中列表的长度不同:
tweetid tweet_date user_mentions hashtags
00112 11-02-2014 [] []
00113 11-02-2014 [00113] [obama, trump]
00114 30-07-2015 [00114, 00115] [hillary, trump, sanders]
00115 30-07-2015 [] []
Run Code Online (Sandbox Code Playgroud)
数据帧是三个不同数据帧的连续,我不确定列表中的项是否具有相同的dtype.例如,在user_mentions列中,有时数据如下:
[00114, 00115]
Run Code Online (Sandbox Code Playgroud)
但有时是这样的:
['00114','00115']
Run Code Online (Sandbox Code Playgroud)
如何设置列表中项目的dtype?
我有一个这样的文本数据框,
id text
1 Thanks. I appreciate your help. I really like this chat service as it is very convenient. I hope you have a wonderful day! thanks!
2 Got it. Thanks for the help; good nite.
Run Code Online (Sandbox Code Playgroud)
我想拆分这些文本句子并将它们与每个 id 匹配。我的预期输出是,
id text
1 Thanks.
1 I appreciate your help.
1 I really like this chat service as it is very convenient.
1 I hope you have a wonderful day!
1 thanks!
2 Got it.
2 Thanks for the help;
2 …Run Code Online (Sandbox Code Playgroud)